Repo symbol

sim_car repository

Repo symbol

sim_car repository

Repo symbol

sim_car repository

Repo symbol

sim_car repository

Repository Summary

Description New version of my fake_car simulator targeting ROS 2
Checkout URI https://github.com/berickson/sim_car.git
VCS Type git
VCS Version main
Last Updated 2023-12-10
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
sim_car 0.0.0
car_gazebo_plugin 0.1.0

README

sim_car

New version of my http:/berickson/fake_car simulator targeting ROS 2. This is currently in early development and targeting Humble. It currently also works with Galactic.

My goal is to make a series of Gazebo models, worlds, and plugins to simulate my robots for test.

Getting Started

  • install ROS2 Humble desktop full, see https://docs.ros.org/en/humble/Installation.html
  • make a workspace, see https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Creating-A-Workspace/Creating-A-Workspace.html
  • clone this repo into your workspaces src folder
  • clone the repo https://github.com/berickson/nav2_line_following_controller into your src folder
  • cd workspace folder
  • install dependencies
pip3 install transforms3d
rosdep init
rosdep update
rosdep install -i --from-path src --rosdistro humble -y

  • Then:
colcon build --symlink-install
source install/setup.bash
ros2 launch sim_car bringup.launch.py

  • verify it works by driving with keyboard in another terminal:
source install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard

  • Nav2 with SLAM will be running, navigatee using the 2D Goal Pose button in RViz

Models

car

  • Simulate a Traxxas Slash robot like blue-crash (https://github.com/berickson/car).
  • Ackermann steering
  • Top mounted lidar
  • Odometers on front wheels
  • Independent shocks on all wheels
  • Rear wheel drive

ROS 2 Integration

Topic  
/car/cmd_ackermann Publish messages here to control the car
/joy Car listens to joystick and turns it into Ackermman commands
/car/odo_fl Odometer tick count for front left wheel
/car/odo_fr Odometer tick count for front right wheel
/car/pose Ground truth pose from Simulator
/scan Lidar scan output
/joint_states joint positions from Gazebo

Launch Files

File  
all.launch.py Run latest test setup in Gazebo, currently an Ackermann drive car in a simple world with joystick control
bringup.launch.py Launch full simulation with Ackermann model, Nav2 and SLAM
spawn_car.launch.py Spawn an Ackermann drive car in Gazebo
spawn_world.launch.py Launch Gazebo with an empty world

Todo List

I keep the todo for this on in a Google Doc (https://docs.google.com/document/d/1eDoU0HPi217dMZmRpME3X8Uc7ZKnQc10sKgLSsA3TdY/edit?usp=sharing)

Repo symbol

sim_car repository

Repo symbol

sim_car repository

Repo symbol

sim_car repository

Repo symbol

sim_car repository