Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ RCAP Public

Robot Operating System (ROS) Car APplication (Raspberry Pi)

License

Notifications You must be signed in to change notification settings

halstar/RCAP

Repository files navigation

A homemade mecanum wheels based robot car, running Robot OS on a Raspberry Pi, with an additional STM32 board, dedicated to motors & making possible to drive the car with a PS2 controller.

This repository gathers the Raspberry Pi files, a.k.a. the ROS car application (RCAP).

Install Ubuntu Mate 20.04.3 LTS (a.k.a. Focal Fossa)

Update Ubuntu & add some regular tools

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install vim pyyaml
  • sudo apt-get install libssl-dev
  • sudo apt-get install i2c-tools libi2c-dev smbus
  • sudo apt-get install curl gnupg2 lsb-release
  • sudo apt-get install libpython3-dev python3-pip
  • sudo pip3 install transforms3d

Setup a local network between the robot car and local Windows PC

  • sudo ufw disable
  • sudo ifconfig enp0s8 192.168.1.45
  • sudo route add default gw 192.168.1.254 enp0s8
  • sudo /etc/init.d/networking restart

Setup SSH

  • sudo apt-get openssh-server

Setup VNC

  • sudo apt-get install tightvncserver

  • tightvncserver

Enter and confirm password Enter no view-only password

  • sudo vim /etc/systemd/system/tightvncserver.service

[Unit] Description=TightVNC remote desktop server
After=sshd.service

[Service] Type=dbus ExecStart=/usr/bin/tightvncserver :1 User=pi Type=forking

[Install] WantedBy=multi-user.target

  • sudo chown root:root /etc/systemd/system/tightvncserver.service
  • sudo chmod 755 /etc/systemd/system/tightvncserver.service
  • sudo systemctl start tightvncserver.service
  • sudo systemctl status tightvncserver.service
  • sudo systemctl enable tightvncserver.service

Setup serial port

enable_uart=1 dtoverlay=disable-bt

  • sudo vim /boot/firmware/cmdline.txt

Remove any "console=ttyAMA0,115200", if found

Install ROS2

  • sudo apt-get install locales

  • sudo locale-gen en_US en_US.UTF-8

  • sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

  • export LANG=en_US.UTF-8

  • locale

  • sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

  • echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

  • sudo apt-get update

  • sudo apt-get install python3-rospkg

  • sudo apt-get install ros-galactic-desktop

  • sudo apt-get install ros-galactic-teleop-twist-keyboard

  • sudo apt-get install ros-galactic-tf2-tools ros-galactic-tf-transformations

  • echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc

  • source ~/.bashrc

  • rosversion --distro

  • ros2 doctor --report

  • ros2 run demo_nodes_cpp talker &

  • ros2 run demo_nodes_cpp listener &

  • killall talker listener

Setup & try LIDAR

  • ls -l /dev | grep ttyUSB

  • sudo chmod 666 /dev/ttyUSB0

  • git clone https://github.com/Slamtec/rplidar_ros.git

  • cd rplidar_ros

  • git checkout ros2

  • colcon build --symlink-install

  • source install/setup.bash

  • ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 map laser &

  • ros2 launch rplidar_ros view_rplidar.launch.py &

  • rviz2 -d rviz/rplidar_ros2.rviz

Try & calibrate MPU9250 IMU

  • i2cdetect -y 1

  • cd tools

  • python3 calibrate_imu.py

Install Navigation2 (Nav2)

  • sudo apt-get install ros-galactic-navigation2

  • sudo apt-get install ros-galactic-nav2-bringup

  • sudo apt-get install ros-galactic-slam-toolbox

  • sudo apt-get install ros-galactic-robot-localization

  • sudo apt-get install ros-galactic-joint-state-publisher-gui

  • sudo apt-get install ros-galactic-rqt-robot-steering

  • sudo apt-get install ros-galactic-xacro

  • ros2 launch rcap rcap.vm.display.launch.py

  • rviz2 -d config.simulation.rviz

  • ros2 launch slam_toolbox online_async_launch.py

  • ros2 launch nav2_bringup navigation_launch.py

  • ros2 launch nav2_bringup navigation_launch.py params_file:=/home/stef/RCAP/robot_car/config/nav2.simulation.yaml

  • ros2 run nav2_costmap_2d nav2_costmap_2d_markers voxel_grid:=/local_costmap/voxel_grid visualization_marker:=/my_marker

  • rqt_robot_steering --force-discover

  • ros2 run teleop_twist_keyboard teleop_twist_keyboard

  • ros2 topic pub /goal_pose geometry_msgs/PoseStamped '{header: {stamp: {sec: 0, nanosec: 0}, frame_id: "map"}, pose: {position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {w: 1.0}}}' -1

  • ros2 topic echo /goal_pose

Commands found usefull while learning/testing

  • ros2 run joint_state_publisher_gui joint_state_publisher_gui description/robot_car.urdf

  • ros2 run tf2_ros static_transform_publisher 0 0 0 3.14 0 0 base_link lidar_link

  • ros2 run teleop_twist_keyboard teleop_twist_keyboard

  • rqt_graph

  • ros2 run tf2_tools view_frames

  • xdg-open frames.pdf

  • sudo service apport stop

About

Robot Operating System (ROS) Car APplication (Raspberry Pi)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /