Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[jsk_fetch_startup] Add fetch gazebo demo using roseus #1213

Merged
merged 31 commits into from
Sep 25, 2021
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4bdfcef
[jsk_fetch_startup] Add fetch gazebo demo using roseus
708yamaguchi Apr 5, 2020
afb46cb
Add description about jsk_fetch_gazebo_demo in jsk_fetch_robot/README.md
708yamaguchi Apr 5, 2020
b16bb4b
define functions which are not merged and released
708yamaguchi Apr 5, 2020
c637049
fix mismatch between demo.l in jsk_fetch_gazebo_demo and demo.py in f…
708yamaguchi Apr 14, 2020
b1bb295
set minimum exec_depend
708yamaguchi Apr 14, 2020
b1fbe53
add more detailed usage to README.md
708yamaguchi Apr 14, 2020
37513ad
add information to avoid roseus bugs to README.md usage
708yamaguchi Apr 14, 2020
6d574f5
add run_demo_script arg to demo.launch
k-okada Apr 15, 2020
eb8a52d
enable to pass topic name to grasping-client
k-okada Apr 15, 2020
f9c6ec1
add jsk_fetch_gazebo_demo.test, grasping_objects.test tests
k-okada Apr 15, 2020
2c0accc
hotfix for https://github.com/jsk-ros-pkg/jsk_robot/pull/1213#issueco…
k-okada Apr 15, 2020
04bf706
Merge pull request #1 from k-okada/add_test
708yamaguchi Apr 15, 2020
61cacaa
fix typo and increaes time-limit
k-okada Apr 15, 2020
e5ac8e7
add fetcheus to exec depend
708yamaguchi Apr 15, 2020
8681394
update README to build this package
708yamaguchi Apr 15, 2020
5842f74
[jsk_fetch_gazebo_demo] refactor demo.l
708yamaguchi Apr 15, 2020
3682766
Relay /odom to /odom_combined to use :go-pos and :go-pos-unsafe
708yamaguchi Apr 16, 2020
5e51122
Merge branch 'master' into fetch-gazebo-demo
k-okada Jul 16, 2021
911a2b3
Merge branch 'master' into fetch-gazebo-demo
k-okada Jul 17, 2021
2bcb325
Merge branch 'master' into fetch-gazebo-demo
k-okada Jul 18, 2021
1112e8e
Merge branch 'master' into fetch-gazebo-demo
k-okada Jul 18, 2021
1ca5c20
To initialize tfl/co, we need node initialization. see https://githu…
k-okada Jul 19, 2021
947ae78
fix typo robot_state_pubclisher -> robot_state_publisher
k-okada Jul 19, 2021
c6a7bee
Merge pull request #11 from k-okada/fetch-gazebo-demo
708yamaguchi Jul 19, 2021
2929b6b
we need node initialization. see https://github.com/jsk-ros-pkg/jsk_r…
k-okada Jul 19, 2021
e5d3f1d
Merge pull request #12 from k-okada/fetch-gazebo-demo
708yamaguchi Jul 19, 2021
eb707fe
remove unnecessary roslaunch command in README.md
708yamaguchi Jul 19, 2021
4c51d4c
Add comment about package dependency
708yamaguchi Jul 19, 2021
19ca749
Add catkin config to workspace setup
708yamaguchi Jul 19, 2021
d5ebc1f
Merge branch 'master' into fetch-gazebo-demo
knorth55 Sep 19, 2021
3200cd7
Merge branch 'master' into fetch-gazebo-demo
knorth55 Sep 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions jsk_fetch_robot/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,11 @@ roslaunch fetch_gazebo simulation.launch
roslaunch fetch_moveit_config move_group.launch
```

Roseus script can be executed on Gazebo. The whole demo is in `jsk_fetch_gazebo_demo/launch/demo.launch`
```bash
roslaunch jsk_fetch_gazebo_demo demo.launch
```

## Fetcheus APIs

### Common
Expand Down
19 changes: 19 additions & 0 deletions jsk_fetch_robot/jsk_fetch_gazebo_demo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 2.8.3)
project(jsk_fetch_gazebo_demo)

find_package(catkin)
catkin_package()

install(DIRECTORY euslisp launch config
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
USE_SOURCE_PERMISSIONS
)

if(CATKIN_ENABLE_TESTING)
if ("$ENV{ROS_DISTRO}" STRGREATER "lunar") # >= melodic
find_package(catkin REQUIRED COMPONENTS rostest roslaunch)
add_rostest(test/jsk_fetch_gazebo_demo.test)
add_rostest(test/grasping_objects.test)
roslaunch_add_file_check(launch/demo.launch)
endif()
endif()
57 changes: 57 additions & 0 deletions jsk_fetch_robot/jsk_fetch_gazebo_demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
jsk_fetch_gazebo_demo
=====================

- This demo is roseus version of [fetch\_gazebo\_demo](https://github.com/fetchrobotics/fetch_gazebo/tree/gazebo9/fetch_gazebo_demo).
- You can learn how to use roseus and how ROS components are executed. (e.g. pointcloud, navigation, motion planning, ... etc)

## Usage
- Build this package like [jsk\_fetch\_startup README](https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_fetch_robot#setup-environment)
```bash
mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/jsk-ros-pkg/jsk_robot.git
rosdep install --from-paths . --ignore-src -y -r
cd ..
catkin build jsk_fetch_gazebo_demo
knorth55 marked this conversation as resolved.
Show resolved Hide resolved
source devel/setup.bash
roslaunch jsk_fetch_gazebo_demo demo.launch
708yamaguchi marked this conversation as resolved.
Show resolved Hide resolved
```

- Launch demo
```bash
source devel/setup.bash
roslaunch jsk_fetch_gazebo_demo demo.launch
```

NOTE
- fetch\_gazebo is compatible with ROS indigo and melodic, so this repo is compatible with ROS indigo and melodic, too.
- Fetch in Gazebo9 (melodic) is somehow dark, but it seems no problem.

## Demo
#### Start of demo
Fetch generates the costmap (blue and purple thick lines) based on the known room map. AMCL particle (red arrows) is scattered at the beginning.

|Gazebo|Rviz|
|---|---|
|![](https://user-images.githubusercontent.com/19769486/78505523-f9f7c180-77ae-11ea-997f-379fdbf94c89.jpg)|![](https://user-images.githubusercontent.com/19769486/78505541-1ac01700-77af-11ea-98eb-e6c1b3e9caaf.png)|

#### Move to table using navigation stacks
While fetch is moving, AMCL particle (red arrows) come together by comparing laser data (red dotted line) and room map. Navigation path (green line) is calculated based on the costmap.

|Gazebo|Rviz|
|---|---|
|![](https://user-images.githubusercontent.com/19769486/78506252-565ce000-77b3-11ea-874d-fd1b966b7d15.jpg)|![](https://user-images.githubusercontent.com/19769486/78505555-3a573f80-77af-11ea-9ad3-e99fa06382be.png)|

#### Recognize obstacles by pointcloud
Fetch generates collision obstacles (green blocks) based on the table and cube pointcloud.

|Gazebo|Rviz|
|---|---|
|![](https://user-images.githubusercontent.com/19769486/78505574-5a86fe80-77af-11ea-803c-d4c45bc4d84d.jpg)|![](https://user-images.githubusercontent.com/19769486/78506589-96bd5d80-77b5-11ea-8220-24e5647998cc.png)|

#### Grasp cube
Fetch solves IK, moves the arm while avoiding obstacles and grasps the blue cube.

|Gazebo|Rviz|
|---|---|
|![](https://user-images.githubusercontent.com/19769486/78505616-9ae67c80-77af-11ea-87d8-dcb0a5714c78.jpg)|![](https://user-images.githubusercontent.com/19769486/78505631-a9cd2f00-77af-11ea-9410-773d85e8081e.png)|
Loading