hyperdog_ros2
HyperDog is a quadruped robot which is fully based on ROS 2 and Micro-ROS.
Publications:
-
[HyperDog
|
IEEE SMC-2022](https://ieeexplore.ieee.org/document/9945526) |
-
[DogTouch
|
IEEE VTC-2022](https://ieeexplore.ieee.org/document/9860815) |
-
[HyperGuider
|
IEEE SMC-2022](https://ieeexplore.ieee.org/document/9945364) |
-
[HyperPalm
|
IEEE SMC-2022](https://ieeexplore.ieee.org/document/9945223) |
YouTube:
Contains
This repository contains ros2 packages for quadruped robot HyperDog.
packages are :
-
hyperdog_msgs
: this package contains the msgs those used by other packages.
-
JoyCtrlCmds
: this contains the control variables of the robot from the gamepad
-
bool[3] states
: { start, walk, side_move_mode}
-
uint8 gait_type
: to change the gait type
-
geometry_msgs/Pose pose
: to control slant(x,y) and roll,pitch,yaw
-
geometry_msgs/Vector3 gait_step
: gait_step.x = steplen_x, gait_step.y = steplen_y, gait_step.z = swing_height
-
Geometry
: this contains the parameters for coordinate of each leg and body orientation(roll,pitch,yaw)
-
geometry_msgs/Point32 fr
: x,y,z end effector coordinates of FR leg
-
geometry_msgs/Point32 fl
: x,y,z end effector coordinates of FL leg
-
geometry_msgs/Point32 br
: x,y,z end effector coordinates of BR leg
-
geometry_msgs/Point32 bl
: x,y,z end effector coordinates of BL leg
-
geometry_msgs/Quaternion euler_ang
: roll, pitch, yaw angles
-
hyperdog_teleop
: this pkg creates `/hyperdog_teleop_gamepad_node.
- Node 1 :
/joy_node
This node creates commands to robot from Gamepad commands
- subscriber :
/joy_node
- publisher :
/hyperdog_joy_ctrl_cmd
using the interface hyperdog_msgs/msg/JoyCtrlCmd
-
hyperdog_ctrl
: This pkg has Body_motion_planner
and gait_generater
and creates the nodes /command_manager_node
and /IK_node
-
uros
: this is the micro_ros package from its official git. this package is used to launch micro_ros_agent
to communicate with micro-controllers which run micro_ros via ROS2
-
hyperdog_launch
: This contains the launch file for all the above nodes and micro_ros_agent
-
hyperdog_gazebo_sim
: Gazebo simmulation
-
hyperdog_gazebo_joint_cmd
: this pkg contains the node /hyperdog_gazebo_joint_cmd
to send joint angles to gazebo
- Node :
/hyperdog_gazebo_joint_cmd
- subscriber :
/hyperdog_jointController/commands
- publisher : ‘/gazebo_joint_controller/commands`
Building
- Create a ROS2 workspace and build this package for ROS2 foxy
# make the workspace
mkdir hyperdog_ws/src
cd hyperdog_ws/src
# download the pkg
git clone https://github.com/NDHANA94/hyperdog_ros2.git
# build the pkg
cd ..
colcon build
- build
micro_ros_agent
in hyperdog_ws from the git repository https://github.com/micro-ROS/micro_ros_setup/tree/foxy. follow instuction and build the micro_ros_agent.
- edit line 41 in hyperdog_ros2/src/hyperdog_launch/launch/hyperdog.launch.py script to configure your serial port.
- go to
hyperdog_ws
directory and build all the packages again
# Launching
source the workspace
source hyperdog_ws/install/setup.bash
to add workspace source permenently to .bashrc:
# add source
echo "source /home/$USER/hyperdog_ws/install/setup.bash" >> ~/.bachrc
to launch run following
ros2 launch hyperdog_launch hyperdog.launch.py
to launch gazebo with hyperdog
ros2 launch hyperdog_gazebo_sim hyperdog_gazebo_sim.launch.py
Known bugs:
- gazebo-ros2-control pkg doesn’t work properly. So the robot slides on the ground.