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

Add Turtlebot3 Burger and Khepera IV Examples #110

Merged
merged 43 commits into from
Jul 10, 2020

Conversation

lukicdarkoo
Copy link
Member

@lukicdarkoo lukicdarkoo commented Jul 3, 2020

Description
This PR adds Turtlebot3 Burger example.

Affected Packages

  • webots_ros2_examples

Tasks

  • Sync webots_ros2_examples documentation with ROS wiki
  • Get Turtlebot3 Burger with converted coordinates
  • Add new world suitable for Turtlebot3 Burger
  • Add usage example for Turtlebot3 Burger
  • Get Khepera IV with converted coordinates
  • Add new world suitable for Khepera IV
  • Add usage example for Khepera IV
  • Avoid using timers when possible (better synchronization and less CPU intensive)
  • Make compatible with turtlebot3 package
    • turtlebot3_teleop
    • turtlebot3_cartographer
    • turtlebot3_navigation2

@lukicdarkoo lukicdarkoo added the enhancement New feature or request label Jul 3, 2020
@lukicdarkoo lukicdarkoo self-assigned this Jul 3, 2020
@lukicdarkoo lukicdarkoo marked this pull request as ready for review July 3, 2020 12:38
Copy link
Member

@DavidMansolino DavidMansolino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you tried to interface it with some of the examples of https://github.com/ROBOTIS-GIT/turtlebot3/tree/foxy-devel ?

I am wondering if we should not move the turtlebot in a dedicated webots_ros2_turtlebot3 package, but since it uses the default driver I am hesitating (looks a bit overkilled for now, but maybe in the future, if we want to add control algorithm or some other nice example it would be nice).

webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/worlds/turtlebot_example.wbt Outdated Show resolved Hide resolved
webots_ros2_examples/worlds/turtlebot_example.wbt Outdated Show resolved Hide resolved
webots_ros2_examples/worlds/turtlebot_example.wbt Outdated Show resolved Hide resolved
webots_ros2_examples/worlds/turtlebot_example.wbt Outdated Show resolved Hide resolved
webots_ros2_examples/resource/turtlebot.yaml Outdated Show resolved Hide resolved
lukicdarkoo and others added 8 commits July 3, 2020 16:19
Co-authored-by: David Mansolino <mansolino.david@gmail.com>
Co-authored-by: David Mansolino <mansolino.david@gmail.com>
Co-authored-by: David Mansolino <mansolino.david@gmail.com>
Co-authored-by: David Mansolino <mansolino.david@gmail.com>
Co-authored-by: David Mansolino <mansolino.david@gmail.com>
@lukicdarkoo
Copy link
Member Author

Have you tried to interface it with some of the examples of https://github.com/ROBOTIS-GIT/turtlebot3/tree/foxy-devel ?

I am wondering if we should not move the turtlebot in a dedicated webots_ros2_turtlebot3 package, but since it uses the default driver I am hesitating (looks a bit overkilled for now, but maybe in the future, if we want to add control algorithm or some other nice example it would be nice).

I haven't, I just tested the laser scan in RViz and odometry. But good idea! I would like to add a few examples! Maybe in another PR?

P.S. I have just added Khepera IV as well :)

@lukicdarkoo lukicdarkoo changed the title Add Turtlebot3 Burger Example Add Turtlebot3 Burger and Khepera IV Examples Jul 3, 2020
@lukicdarkoo lukicdarkoo removed the request for review from DavidMansolino July 7, 2020 09:35
@lukicdarkoo
Copy link
Member Author

Cartographer:
https://i.imgur.com/rrcZsS8.mp4

Navigation:
https://i.imgur.com/6AGnUXp.mp4

@DavidMansolino
Copy link
Member

Very nice demo!!!

@DavidMansolino
Copy link
Member

👀

webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/worlds/khepera4_example.wbt Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Outdated Show resolved Hide resolved
webots_ros2_examples/README.md Show resolved Hide resolved
webots_ros2_examples/README.md Show resolved Hide resolved
@lukicdarkoo
Copy link
Member Author

I changed the PR so now it doesn't require:
cyberbotics/webots#1884

@DavidMansolino
Copy link
Member

👀

Co-authored-by: David Mansolino <mansolino.david@gmail.com>
Copy link
Member

@DavidMansolino DavidMansolino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you

@lukicdarkoo lukicdarkoo merged commit 910239a into develop Jul 10, 2020
@lukicdarkoo lukicdarkoo deleted the feature-turtlebot-example branch July 10, 2020 12:05

#### Troubleshooting

If you see import failures or some indications saying that `WEBOTS_HOME` is incorrectly set, make sure your environment variables are [configured for extern controllers](https://www.cyberbotics.com/doc/guide/running-extern-robot-controllers?version=master#environment-variables).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove the "?version=master" part from the URL.

world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/turtlebot3_burger_example.wbt
```

If you have [`turtlebot3`](https://github.com/ROBOTIS-GIT/turtlebot3) package installed you can start `cartographer` as (you may need to run the command twice if it fails the first time):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you have the ...
Also, I would add a coma after "installed".


> On the [official TurtleBot3 website](https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/#turtlebot3) you can find more information about [navigation](https://emanual.robotis.com/docs/en/platform/turtlebot3/ros2_navigation2/) and [SLAM](https://emanual.robotis.com/docs/en/platform/turtlebot3/ros2_slam/) configuration.

This will expose necessary topics:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will expose the necessary topics:

@@ -128,6 +128,8 @@ ros2 launch webots_ros2_core robot_launch.py \
```
This command will run Webots with [UR5](https://cyberbotics.com/doc/guide/ure) and publish joint state positions, transformations and robot description.

> Do not get confused by `$(ros2 pkg prefix webots_ros2_universal_robot --share)` as it will simply return path to share directory of `webots_ros2_universal_robot` package. Alternatively, you can specify absolute path to `universal_robot_rviz.wbt` file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many missing "the":

Do not get confused by $(ros2 pkg prefix webots_ros2_universal_robot --share) as it will simply return the path to the share directory of the webots_ros2_universal_robot package. Alternatively, you can specify the absolute path to the universal_robot_rviz.wbt file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

Successfully merging this pull request may close these issues.

None yet

3 participants