Ricbot: Difference between revisions

From Rsewiki
 
(9 intermediate revisions by the same user not shown)
Line 51: Line 51:
  IN1 IN2 PWM OUT1, OUT2 Motor Behavior
  IN1 IN2 PWM OUT1, OUT2 Motor Behavior
  0 0 x Stop
  0 0 x Stop
  1 1 x Vacant
  1 1 x Vacant (relax)
  1 0 1 Forward 100%
  1 0 1 Forward 100%
  0 1 1 Reverse 100%
  0 1 1 Reverse 100%
Line 61: Line 61:
  Pin        IDC10-pin      Software      Function
  Pin        IDC10-pin      Software      Function
  1 (black)  1              --            GND
  1 (black)  1              --            GND
  2 (red)    3              LS_1  (pin 27) power off (when low)
  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)
  3 (white)  4              LS_0  (A6)    battery voltage  (39k/4.7k)
  4 (yellow) 6              LS_4  (pin 26) Alive LED
  4 (yellow) 6              LS_4  (pin 26) Alive LED
Line 108: Line 108:
=== Install software on Raspberry Pi ===
=== Install software on Raspberry Pi ===


Make same installation as [[Robobot install on Raspberry]] except the
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)
...

Latest revision as of 20:08, 13 January 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.

Tentative layout:

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

Installation notes

Camera position

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

DRI0042: https://wiki.dfrobot.com/15A_Single_DC_Motor_Driver_SKU__DRI0042

Regbot 6.3: Regbot hardware board

5V 5A: | 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 [[1]].

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)
...