Gazebo simulation for the Noah-bot robot.
It contains the URDF model of the robot with accurate visual meshes.
- Kinect Camera. Ros topics:
- /noah/kinect/camera_info
- /noah/kinect/depth/camera_info
- /noah/kinect/depth/image_raw
- /noah/kinect/image_raw
- /noah/kinect/points
- Laser Scanner. Ros topics:
- /noah/laser_scan
Ros topics:
- /noah/odom
- /noah/cmd_vel
- Ubuntu version: Focal Fossa 20.04
- ROS Version: Foxy Fitzroy
- Gazebo version: 11
Note: Are you looking for the ROS1 simulation? See here.
Summary of of the packages in the repository.
- Holds Noah xacro files for URDF definition.
- Simple launch file for:
- Convert xacro to urdf
- Run
robot_state_publisher(Optional):- Publishes static
TF. - Publishes robot description at
/noah/robot_descriptiontopic.
- Publishes static
- Run
joint_state_publisher(Optional) - Run
rviz2(Optional)
- Holds three gazebo worlds to spawn Noah in:
empty.world,test.worldandsmall_house.world. - Launch file for:
- Run gazebo using an available world.
- Includes
noah_descriptionlaunch file.Includenoah_description's launch file. - Spawn Noah
- Run rviz2 (optional)
- Install docker
- If using nvidia, install nvidia-docker
- Clone this repository.
- Build the docker image running:
After this, the image tagged as
DOCKER_BUILDKIT=1 docker build -t noahbot:foxy -f docker/Dockerfile .noahbot:foxywill be ready to run the Noahbot simulation.
Run:
./docker/run ros2 launch noah_gazebo noah_gazebo.launch.pyTo start the simulation.
If you want to test code changes quickly without rebuilding the container, you can use the develop script:
$ ./docker/developWhich will open a shell inside the container, mounting the local copy of the ROS packages. You can quickly re-build the code with:
$ cd /colcon_ws
$ colcon buildThe develop script will also run the containers with host networking, so if you open multiple ones
you can easily send ROS messages across them.
- Install ROS Foxy Fitzroy
- Install Gazebo 11
- Clone this repository in your
colconworkspace.├── colcon_ws └── src └── Noah-bot-simulation-ros2 rosdep install --from-paths src --ignore-src -r -y- Build the project and source the workspace
colcon build source install/setup.bash source /usr/share/gazebo/setup.bash
- It is ready to be used! See Run Simulation!
ros2 launch noah_gazebo noah_gazebo.launch.pyUse a different world!
ros2 launch noah_gazebo noah_gazebo.launch.py world:=small_house.worldUse the rviz argument and run rviz2 along the simulation!
ros2 launch noah_gazebo noah_gazebo.launch.py rviz:=trueYou can also start the simulation without the Gazebo GUI when you don't have a display (like in CI):
ros2 launch noah_gazebo noah_gazebo.launch.py gazebo_gui:=falseTry Teleoperating Noah!
Once simulation is running, in other terminal run:
ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=noah/cmd_vel