Repo symbol

rosbot repository

Repo symbol

rosbot repository

Repo symbol

rosbot repository

Repo symbol

rosbot repository

Repository Summary

Description ROS 2 based robot learning platform
Checkout URI https://github.com/kallaspriit/rosbot.git
VCS Type git
VCS Version main
Last Updated 2022-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROSBOT

ROS 2 based robot learning platform.

ROSBOT introductory video

Click the image to video showing robot design and navigation in action

Bill of Materials

The BOM has not been designed for easy replication but most all used components and alternatives considered are there with respective links of where were they purchased so maybe it helps someone putting together a similar build :)

Bill of materials

Click the image to open BOM

Run main rosbot/ros workspace

Disclaimer

The following documentation is various commands and information that I’ve written over the time the robot was in development and everything is not up to date or relevant but maybe it helps someone.

  • Add user to usb serial and input groups
    • sudo usermod -a -G input ubuntu
    • sudo usermod -a -G dialout ubuntu
    • sudo usermod -a -G tty ubuntu
  • Build rosbot (on both the robot and the remote PC)
    • cd ~/rosbot/ros to open workspace
    • rosdep install -i --from-path src --rosdistro foxy -y to install dependencies
    • git pull && colcon build to pull changes and build workspace
  • Launch rosbot on the robot
    • First build it if there have been any changes
    • Open new terminal
    • cd ~/rosbot/ros to open workspace
    • . install/local_setup.bash to load workspace overlay (on both robot and remote pc)
    • ros2 launch odrive_bringup rosbot.launch.py to launch rosbot (run on robot)
    • ros2 launch odrive_bringup rviz.launch.py to launch rviz (run on remote pc)
  • Run joystick teleop
    • Open new terminal
    • . install/local_setup.bash to load workspace overlay
    • ros2 launch teleop_twist_joy teleop.launch.py joy_config:='rosbot_xbox_bluetooth' cmd_vel:=/diff_drive_controller/cmd_vel_unstamped to launch joystick teleop
    • Hold down left trigger (button 6) and use left and right joysticks to control speed and rotation
    • Hold down right trigger (button 7) for boost (faster movements)
  • Launch odrive manual control (for testing only)
    • Open new terminal
    • . install/local_setup.bash to load workspace overlay
    • ros2 launch odrive_bringup odrive.launch.py to launch odrive test ()
    • ros2 topic pub -r 100 /left_wheel_joint_velocity_controller/commands std_msgs/Float64MultiArray "data: [1]"
    • ros2 topic pub -r 100 /right_wheel_joint_velocity_controller/commands std_msgs/Float64MultiArray "data: [-1]"
    • ros2 launch teleop_twist_joy teleop.launch.py joy_config:='rosbot_xbox_bluetooth' cmd_vel:=/diff_drive_controller/cmd_vel_unstamped to launch joystick teleop
    • Hold down left trigger (button 6) and use left and right joysticks to control speed and rotation
  • Launch usb xbox joystick teleop that publishes to /cmd_vel
    • ros2 launch teleop_twist_joy teleop.launch.py cmd_vel:=cmd_vel joy_config:=rosbot_xbox_usb

Debugging

  • Debugging
  • ros2 topic echo /joint_states to show joint states including velocity etc
  • ros2 topic echo /dynamic_joint_states to show dynamic joint states including axis error etc
  • ros2 run tf2_tools view_frames.py to generate frames.pdf frame tree
  • rqt to open RQT, add plugins such as Topics > Topic Monitor
  • ros2 run xacro xacro ./src/rosbot_description/urdf/rosbot.urdf.xacro to debug what’s wrong with URDF file
  • ros2 run tf2_ros tf2_echo odom base_link to verify transforms from odom to base_link
    • At time 1634580767.596875940
      • Translation: [6.986, -2.328, 0.000]
      • Rotation: in Quaternion [0.000, 0.000, -0.210, 0.978]
    • At time 1634580768.594622939
      • Translation: [7.108, -2.383, 0.000]
      • Rotation: in Quaternion [0.000, 0.000, -0.213, 0.977]

Joystick teleop

  • https://index.ros.org/p/teleop_twist_joy/github-ros2-teleop_twist_joy/
  • https://github.com/ros2/teleop_twist_joy/tree/foxy/
  • http://wiki.ros.org/joy
  • https://github.com/medusalix/xow need xow to use xbox bluetooth controller
  • Configure XOW to use xbox controller over bluetooth
    • sudo apt install cabextract to install dependencies
    • git clone https://github.com/medusalix/xow
    • cd xow
    • make BUILD=RELEASE
    • sudo make install
    • sudo systemctl enable xow
    • sudo systemctl start xow
    • sudo systemctl kill -s SIGUSR1 xow to enable XOW pairing mode (generally not needed)
  • Disable ERTM
    • sudoedit /sys/module/bluetooth/parameters/disable_ertm
    • replace N with Y
    • reboot
  • Restart bluetooth
    • sudo service bluetooth restart
    • sudo rmmod btusb
  • Test controller
    • jstest /dev/input/js0
  • Also disable ERTM permanently
    • https://www.addictivetips.com/ubuntu-linux-tips/xbox-one-controllers-over-bluetooth-linux/
    • sudo apt install dkms git linux-headers-uname -r``
    • git clone https://github.com/atar-axis/xpadneo.git
    • cd xpadneo
    • sudo ./install.sh

File truncated at 100 lines see the full file

Repo symbol

rosbot repository

Repo symbol

rosbot repository

Repo symbol

rosbot repository

Repo symbol

rosbot repository