hyperdog_ros2
hyperdog_ros2 copied to clipboard
HyperDog is a quadruped robot which is fully based on ROS 2 and Micro-ROS
hyperdog_ros2
HyperDog is a quadruped robot which is fully based on ROS 2 and Micro-ROS.
Publications:
HyperDog| IEEE SMC-2022DogTouch| IEEE VTC-2022HyperGuider| IEEE SMC-2022HyperPalm| IEEE SMC-2022
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 gamepadbool[3] states: { start, walk, side_move_mode}uint8 gait_type: to change the gait typegeometry_msgs/Pose pose: to control slant(x,y) and roll,pitch,yawgeometry_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 leggeometry_msgs/Point32 fl: x,y,z end effector coordinates of FL leggeometry_msgs/Point32 br: x,y,z end effector coordinates of BR leggeometry_msgs/Point32 bl: x,y,z end effector coordinates of BL leggeometry_msgs/Quaternion euler_ang: roll, pitch, yaw angles
-
-
hyperdog_teleop: this pkg creates `/hyperdog_teleop_gamepad_node.- Node 1 :
/joy_nodeThis node creates commands to robot from Gamepad commands- subscriber :
/joy_node - publisher :
/hyperdog_joy_ctrl_cmdusing the interfacehyperdog_msgs/msg/JoyCtrlCmd
- subscriber :
- Node 1 :
-
hyperdog_ctrl: This pkg hasBody_motion_plannerandgait_generaterand creates the nodes/command_manager_nodeand/IK_node-
Body_motion_planner: plans body motions from control commands receive from/command_manager_node -
gait_generator: generates gaits acording to the given gait_type command from the Gamepad -
Node 1 :
/command_manager_node- subscriber :
/hyperdog_joy_ctrl_cmdviahyperdog_msgs/msg/JoyCtrlCmdsinterface - publisher :
/hyperdog_geometryviahyperdog_msgs/msg/Geometryinterface
- subscriber :
-
Node 2 :
/IK_node- subscriber :
/hyperdog_geometryviahyperdog_msgs/msg/Geometryinterface - publisher :
/hyperdog_jointController/commands
- subscriber :
-
-
uros: this is the micro_ros package from its official git. this package is used to launchmicro_ros_agentto communicate with micro-controllers which run micro_ros via ROS2 -
hyperdog_launch: This contains the launch file for all the above nodes andmicro_ros_agent -
hyperdog_gazebo_sim: Gazebo simmulation -
hyperdog_gazebo_joint_cmd: this pkg contains the node/hyperdog_gazebo_joint_cmdto send joint angles to gazebo- Node :
/hyperdog_gazebo_joint_cmd- subscriber :
/hyperdog_jointController/commands - publisher : '/gazebo_joint_controller/commands`
- subscriber :
- Node :
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_agentin 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_wsdirectory 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 hypedog_gazebo_sim hyperdog_gazebo_sim.launch.py
Known bugs:
- gazebo-ros2-control pkg doesn't work properly. So the robot slides on the ground.