neo_relayboard_v3¶
Summary¶
RelayBoard V3 is a compact microprocessor deployed on ROX and newer MPO-500 platforms. It is the central hub for the platform’s sensors and actuators.
The RelayBoardV3 is responsible for the following functionalities:
- All the motion commands from ROS to the motor controllers are sent through the relayboardv3_node
- Provides the necessary interface for
- reading the joint states
- switching the different pre-configured safety fields on the flexisoft
- starting and stopping the charging process (not for wired charging)
- enabling and disabling the onboard digital outputs
- enabling and disabling the relays
- reading the battery voltage and current
- controlling the onboard LEDs
- reading the Ultrasonic sensor data from the new generation USBoard
- reading the key switch state
- reading the emergency stop state
- reading the platforms ambient temperature
- reading the possible hardware system errors
relayboardv3_node¶
Note
This documentation contains the updates for the version 0.5.0. If you would like to update the version of your Beaglebone, please write to us directly.
The relayboardv3_node is the main and the only node of this ROS 2 package.
- Subscribes:
- /drive/joint_trajectory (trajectory_msgs/JointTrajectory)
- The joint trajectory to be executed
- /kinematics_state (neo_msgs2/KinematicsState)
- The kinematics state of the robot
- Publishes:
- /drive/joint_states (sensor_msgs/JointState)
- The joint states of the robot
- /emergency_stop_state (neo_msgs2/EmergencyStopState)
- The emergency stop state of the robot
- /battery_state (neo_msgs2/BatteryState)
- The battery state of the robot
- /safety_state (neo_msgs2/SafetyState)
- The flexisoft state of the robot
- /relayboard_v3/state (neo_msgs2/RelayBoardV3)
- Provides the state of the relayboards auxillary components which includes the digital inputs, relays, LEDs, key switch, and the temperature sensor
- /ioboard/data (neo_msgs2/IOBoardData)
- Provides the state of the IOBoard
- /usboard/measurements (neo_msgs2/USBoardV2)
- Provides the data of the Ultrasonic sensors connected to the USBoard
- Services:
- /set_relay (neo_srvs2/ReayBoardSetRelay)
- Enables or disables the relays
- /ioboard/set_digital_output (neo_srvs2/IOBoardSetDigitalOutput)
- Enables or disables the digital outputs
- /start_charging (std_srvs/Empty)
- Starts the charging process (not for wired charging)
- /stop_charging (std_srvs/Empty)
- Stops the charging process (not for wired charging)
- /set_safety_field (neo_srvs2/SetSafetyField)
- Switches the currently active safety field to the one with the given ID. Use
field_id = 0to disable or revert to preset
- Switches the currently active safety field to the one with the given ID. Use
- /shutdown_platform (std_srvs/Empty)
- Does a complete shutdown of the robot
- /set_safety_mode (neo_srvs2/RelayboardSetSafetyMode)
- Allows you to switch between the different pre-configured safety modes on the flexisoft using the neo_msgs2/SafetyMode
Parameters:
Note
Depending on the batteries and Wallbox, adjust the parameters in the platform-specific configuration file:
- ROX:
~/ros2_workspace/src/rox/rox_bringup/configs/neo_relayboard_v3/relayboard_v3.yaml - Newer MPO-500:
~/ros2_workspace/src/neo_mpo_500-2/configs/neo_relayboard_v3/relayboard_v3.yaml
| board_node: |
|
||||
|---|---|---|---|---|---|
| pilot_config: |
|
||||
| agm_batteries_config: | |||||
|
|||||
| lfp_batteries: |
|
||||
| lfp_batteries_config: | |||||
|
|||||
| use_multipowr: |
|
||||
| multipowr_config: | |||||
|
|||||
Building the package¶
Once the relevant ROS Distribution is sourced, please follow the steps in a terminal:
Initialize the associated submodules
cd your_colcon_workspace/src/neo_relayboard_v3
git submodule update --init
Install the vnx_base
sudo dpkg -i vnx-base/x86_64/vnx-base-1.9.6-x86_64-ubuntu-22.04.deb
cd your_colcon_workspace
colcon build --symlink-install
. install/setup.bash