Ricbot: Difference between revisions

From Rsewiki
 
(44 intermediate revisions by the same user not shown)
Line 13: Line 13:
* Manual remote control.
* Manual remote control.


Tentative layout:
== User support ==


[[file: ricbot_on-shape.png | 500px]]
* [[RIC start and stop | Start, drive and stop]]
* [[RIC data recording | Data recording]]


Length is 1m, free height 25cm, width 65cm.
== Installation notes ==


== Installation notes ==
* [[Ricbot hardware]]
 
* Ricbot installation of [[Ricbot realsense | Realsense]]
=== Camera position ===
* [[Ricbot ROS2 | ROS2]] including bridge from MQTT to ROS2 messaging
 
* [[Ricbot GNSS | GNSS]] installation, including 'gpsd'
[[file: ric-camera-position.png | 500px]]
* [[Ricbot PTP | PTP]] time synchronization.
 
Forward-looking camera: Intel RealSense D455, FOV 87 x 58 deg, range 0.6 to 6m.
 
Down-looking camera: Intel RealSense D435, FOV: 87 x 58 deg, range 0.3 to 3m.
 
=== Cabling ===
 
[[file: ric_cabling.png | 500px]]
 
DRI0042: https://wiki.dfrobot.com/15A_Single_DC_Motor_Driver_SKU__DRI0042
 
Regbot 6.3: [[Regbot hardware board]]
 
5V 5A: [https://www.aliexpress.com/item/1005008100990014.html?algo_exp_id=808ac6eb-4bfe-4ac4-a422-35a7cb0fd327-20&pdp_ext_f=%7B%22order%22%3A%22-1%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pdp_npi=6%40dis!DKK!26.16!18.33!!!4.01!2.81!%402103890117656074573735161e95c5!12000043748989192!sea!DK!0!ABX!1!0!n_tag%3A-29910%3Bd%3A8bdbd77d%3Bm03_new_user%3A-29895&curPageLogUid=JqIWXdlTator&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3A1005008100990014%7C_p_origin_prod%3A#nav-specification | Aliexpress link to device]
 
==== DRI0042 to Regbot 4-pin PWM ====
 
DRI              Regbot PWM    Software
7 GND  (black)  1 GND        --
4 PWM  (red)    2 in1        PIN_xxxx_DIR
5 IN1  (white)  3 in2        PIN_xxxx_PWM
6 IN2  (yellow) 4 fault      PIN_xxxx_FAULT
3 5V out
 
DRI0042 control values
IN1 IN2 PWM OUT1, OUT2 Motor Behavior
0 0 x Stop
1 1 x Vacant (relax)
1 0 1 Forward 100%
0 1 1 Reverse 100%
1 0 PWM Forward at PWM speed
0 1 PWM Reverse at PWM speed
 
==== Power control ====
 
Pin        IDC10-pin      Software      Function
1 (black)  1              --            GND
2 (red)    3              LS_1  (pin 27) power off (when low)  -- pt not working (wrong mod on power board)
3 (white)  4              LS_0  (A6)    battery voltage  (39k/4.7k)
4 (yellow) 6              LS_4  (pin 26) Alive LED
 
=== Intel RealSense ===
 
Install
sudo apt-get install automake libtool libusb-1.0-0-dev libx11-dev xorg-dev libglu1-mesa-dev
sudo apt install libssl-dev
 
==== Library and examples ====
 
cd ~/git
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build
cd build
cmake ..
make -j3
sudo make install
 
Copy udev rules to udev
 
cd ~/git/librealsense/config/99-realsense*.rules /etc/udev/rules.d/
udevadm control --reload-rules
 
All example commands start with rs-, e.g.:
rs-capture
rs-pointcloud
 
=== Teensy interface ===
 
The Teensy interface implements a bridge to MQTT, a motor controller (velocity and turn rate), and a remote control.
 
The configuration is in
/home/local/svn/teensy_interface/build/robot.ini
 
See also [[Robobot teensy interface]].
 
=== Start at boot ===
 
See the similar start setup in [[https://rsewiki.electro.dtu.dk/index.php?title=Enable_autostart#Autostart]].
 
Comment out (or delete) the start of the camera streamer (not compatible with RealSense 3D cam)
 
=== Install software on Raspberry Pi ===
 
Perform the same installation as [[Robobot install on Raspberry]], except for the serial port configuration (which should not be needed).
 
=== Teensy software ===
 
This is the Regbot software, configured to match the Ricbot.
 
See more details here [[Regbot firmware]].
 
=== Intel Librealsense ===
 
Installing support for Intel librealsense.
 
sudo apt install libssl-dev
sudo apt-get install freeglut3-dev
sudo apt-get install xorg-dev
cd git
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build
cd build
cmake ..
 
I also needed to install libusb-1.0-0-dev
sudo apt install libusb-1.0-0-dev
This path was not included in the CMakeLists.txt, so I added this line at the beginning of the CMakeLists.txt:
 
cd librealsense
nano CMakeLists.txt
add
include_directories( /usr/include/libusb-1.0/ )
like here:
cmake_minimum_required(VERSION 3.10)
set( LRS_TARGET realsense2 )
project( ${LRS_TARGET} LANGUAGES CXX C )
# Allow librealsense2 and all of the nested project to include the main repo folder
set(REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${REPO_ROOT})
'''include_directories( /usr/include/libusb-1.0/ )'''
include(CMake/lrs_options.cmake)
include(CMake/connectivity_check.cmake)
...
 
== ROS2 ==
 
From https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
 
Install
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
 
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
 
sudo dpkg -i /tmp/ros2-apt-source.deb
 
sudo apt update && sudo apt install ros-dev-tools
 
Install full ROS2 Jazzy
 
sudo apt install ros-jazzy-desktop
 
Start in this ROS2 environment, now and in new terminals:
source /opt/ros/jazzy/setup.bash
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
export ROS_DOMAIN_ID=0
echo "export ROS_DOMAIN_ID=0" >> ~/.bashrc
 
Install ROS QT GUI stuff
sudo apt install '~nros-jazzy-rqt*'
 
=== Create workspace ===
 
From https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html
 
Install colcon
sudo apt install python3-colcon-common-extensions
 
Create workspace directory
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
 
From within this directory clone (any) standard package
 
e.g. tutorial examples
git clone https://github.com/ros2/examples src/examples -b jazzy
 
Build the examples; this is memory and CPU-hungry, so the option ''--executor sequential'' may come in handy, especially on a Raspberry Pi, but it will take significantly longer.
colcon build --symlink-install --executor sequential
 
Allow use of colcon_cd
echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=/opt/ros/jazzy/" >> ~/.bashrc
 
To use the ''mixin'' shortcut for some colcon options, add:
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default

Latest revision as of 14:26, 20 April 2026

Ricbot, a wheeled sensor platform

Ricbot is intended for fast deployment to areas of interest.

Main features:

  • Reused motors and wheels from an old "Elector Wheelie" platform
  • Designed to fit into a normal car for deployment, i.e can be disassembled to no more than 55cm in height.
  • No more than 25-30 kg, requiring 1 or 2 persons to load or unload.
  • Wheel-odometry recording (and timestamped)
  • Camera image recording (and timestamped), the intention is Realsense D435.
  • Maybe GNSS recording too.
  • Manual remote control.

User support

Installation notes