Skip to content

bolt_hardware

Elham Daneshmand edited this page May 11, 2021 · 4 revisions

Launching the hardware

Clone the required repositories and build them

$ git clone [email protected]:robotics/treep_robotics.git
$ git clone [email protected]:machines-in-motion/treep_machines_in_motion.git
$ treep --clone BOLT
$ cd workspace

$ source /opt/ros/dashing/setup.bash
$ source /opt/openrobots/setup.bash

$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

$ source install/setup.bash

To launch the dgm on bolt you need to be root. This is as the master-board-sdk requires root access for RAW network traffic. You can switch to root on your terminal using

$ sudo -s
$ source /opt/ros/dashing/setup.bash
$ source /opt/openrobots/setup.bash
$ source install/setup.bash

From the root terminal, launch dynamic graph manager for bolt by running

$ ros2 run bolt dg_main_bolt

To load a python script on the control process, run

$ ros2 run dynamic_graph_manager remote_python_client <your_script>.py 

To run the calibration on the robot, execute in the non-root terminal

$ ros2 service call /dynamic_graph_manager/calibrate_joint_position mim_msgs/srv/JointCalibration

To start the dynamic graph process, source the setup.bash scripts in a different terminal and run

$ ros2 service call /dynamic_graph_manager/start_dynamic_graph  std_srvs/srv/Empty

Note that the current working directory of the python process is specify by the folder you launched the dg_main_bolt application in.

⚠️ Make sure there is not any node running before run your code!

Configuration the setup

The joint offsets used in the calibration step and the name of the network interface to connect with the robot are specified in the package robot_properties_bolt. More specifically, you have to edit the file

robot_properties_bolt/resource/dynamic_graph_manager/dgm_parameters_bolt.yaml

The interface name for communicating with the robot is specified in hardware_communication/network_id. The calibration offsets are specified in hardware_communication/calibration/index_to_zero_angle.

You can list the interfaces on your computer using ifconfig -s. To calibrate the offset angles, put the robot in the zero position. The offset angles are then the joint positions you read + the offset angles specified in the file.

Clone this wiki locally