1. Для работы манипулятора потребуется ПК с установленными:
- Ubuntu 18.04 x64
- ROS
- ПО робота
(Образ предоставит Promobot)
2. Управление манипулятором принципиально ничем не отличается от выполнения скриптов на роботе v4
3. Пример команды по управлению:
/left_arm_controller/command [trajectory_msgs/JointTrajectory] | Данный топик позволяет управлять контроллером положения левой руки. В контроллер левой руки входят суставы: left_arm_1_joint, left_arm_2_joint, left_arm_3_joint, left_arm_4_joint, left_arm_5_joint, left_arm_6_joint, left_arm_7_joint. В данный топик публикуются сообщения с типом trajectory_msgs/JointTrajectory которые имеют следующую структуру:
[std_msgs/Header] header # http://docs.ros.org/api/std_msgs/html/msg/Header.html
uint32 seq
time stamp # время должно быть синхронно с временем ros
string frame_id # не используется
string[] joint_names # массив имен джойнов которым будет подаваться задание для управления.
trajectory_msgs/JointTrajectoryPoint[] points
# точки траектории в которой находятся позиции, скорости, ускорения и сила (так как контроллер для управления рук работает в режиме управления позицией, то нужно
# указывать только позиции для каждого джойнта). если тип джойнта revolute или continuous положение задается в радианах. если тип
# джойнта prismatic положение задается в метрах.
float64[] positions # массив позиций каждого джойнта размерность массива и порядок этих позиций должны совпадать с размерностью и порядком джойнтов в массиве joint_names.
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start # время завершения команды. контролер рассчитает траекторию от текущего положения джойнтов до желаемого за время t(i) - t(i-1).
$ rostopic pub /left_arm_controller/command trajectory_msgs/JointTrajectory "header: auto
joint_names:
- 'left_arm_4_joint'
points:
- positions: [1.57]
time_from_start: {secs: 1, nsecs: 0}
- positions: [0.0]
time_from_start: {secs: 6, nsecs: 0}" -1
|
---|