add new cyberdog model

This commit is contained in:
fan-ziqi 2024-04-04 23:03:45 +08:00
parent 067baf430b
commit ed72fdc6a3
42 changed files with 8183 additions and 310 deletions

View File

@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 2.8.3)
project(cyberdog2_description)
find_package(catkin REQUIRED COMPONENTS
genmsg
roscpp
std_msgs
tf
)
catkin_package(
CATKIN_DEPENDS
)
include_directories(
# include
${Boost_INCLUDE_DIR}
${catkin_INCLUDE_DIRS}
)

View File

@ -0,0 +1,23 @@
<launch>
<!-- <param name="robot_description" textfile="$(find cyberdog2_description)/urdf/cyberdog2_description.urdf"/> -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find cyberdog2_description)/xacro/robot.xacro'"/>
<!-- send fake joint values -->
<!-- <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher">
<param name="use_gui" value="TRUE"/>
</node> -->
<node
name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
type="joint_state_publisher_gui" />
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
<param name="publish_frequency" type="double" value="1000.0"/>
</node>
<node pkg="rviz" type="rviz" name="rviz" respawn="false" output="screen"
args="-d $(find cyberdog2_description)/launch/test.rviz"/>
</launch>

View File

@ -0,0 +1,19 @@
<launch>
<include file="$(find gazebo_ros)/launch/empty_world.launch" />
<node
name="tf_footprint_base"
pkg="tf"
type="static_transform_publisher"
args="0 0 0 0 0 0 base_link base_footprint 40" />
<node
name="spawn_model"
pkg="gazebo_ros"
type="spawn_model"
args="-file $(find cyberdog_description)/urdf/cyberdog2_description.urdf -urdf -model cyberdog2_description -z 0.6 -unpause"
output="screen" />
<node
name="fake_joint_calibration"
pkg="rostopic"
type="rostopic"
args="pub /calibrated std_msgs/Bool true" />
</launch>

View File

@ -0,0 +1,245 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
Splitter Ratio: 0.5
Tree Height: 555
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Name: Time
SyncMode: 0
SyncSource: ""
Preferences:
PromptSaveOnExit: true
Toolbars:
toolButtonStyle: 2
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz/RobotModel
Collision Enabled: false
Enabled: true
Links:
All Links Enabled: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
FL_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Link Tree Style: Links in Alphabetic Order
RL_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
imu_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
trunk:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Name: RobotModel
Robot Description: robot_description
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
- Class: rviz/TF
Enabled: false
Frame Timeout: 15
Frames:
All Enabled: true
Marker Alpha: 1
Marker Scale: 1
Name: TF
Show Arrows: true
Show Axes: true
Show Names: true
Tree:
{}
Update Interval: 0
Value: false
Enabled: true
Global Options:
Background Color: 48; 48; 48
Default Light: true
Fixed Frame: trunk
Frame Rate: 30
Name: root
Tools:
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/MoveCamera
- Class: rviz/Select
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
Single click: true
Topic: /clicked_point
Value: true
Views:
Current:
Class: rviz/Orbit
Distance: 2.3364639282226562
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.16539815068244934
Target Frame: <Fixed Frame>
Yaw: 1.430397391319275
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 846
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd000000040000000000000156000002b4fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000002b4000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b4fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b000002b4000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000030700fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002b400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1200
X: 739
Y: -14

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<package format="2">
<name>cyberdog2_description</name>
<version>1.0.0</version>
<description>The cyberdog2_description package</description>
<author>TODO</author>
<maintainer email="TODO@email.com" />
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
<depend>roscpp</depend>
<depend>std_msgs</depend>
<depend>roslaunch</depend>
<depend>robot_state_publisher</depend>
<depend>rviz</depend>
<depend>joint_state_publisher_gui</depend>
<depend>gazebo</depend>
</package>

View File

@ -0,0 +1,293 @@
Panels:
- Class: rviz_common/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /Grid1
- /RobotModel1
Splitter Ratio: 0.5558823347091675
Tree Height: 719
- Class: rviz_common/Selection
Name: Selection
- Class: rviz_common/Tool Properties
Expanded:
- /2D Goal Pose1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz_common/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz_common/Time
Experimental: false
Name: Time
SyncMode: 0
SyncSource: ""
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz_default_plugins/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz_default_plugins/RobotModel
Collision Enabled: false
Description File: ""
Description Source: Topic
Description Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: robot_description
Enabled: true
Links:
AI_camera_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
All Links Enabled: true
D435_camera_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
FL_abad:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_hip_shoulder:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_knee:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_abad:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_hip_shoulder:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_knee:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Link Tree Style: Links in Alphabetic Order
RGB_camera_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_abad:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_hip_shoulder:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_knee:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_abad:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_hip_shoulder:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_knee:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
base_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
body:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
head:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
imu_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Name: RobotModel
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
Fixed Frame: base_link
Frame Rate: 30
Name: root
Tools:
- Class: rviz_default_plugins/Interact
Hide Inactive Objects: true
- Class: rviz_default_plugins/MoveCamera
- Class: rviz_default_plugins/Select
- Class: rviz_default_plugins/FocusCamera
- Class: rviz_default_plugins/Measure
Line color: 128; 128; 0
- Class: rviz_default_plugins/SetInitialPose
Covariance x: 0.25
Covariance y: 0.25
Covariance yaw: 0.06853891909122467
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /initialpose
- Class: rviz_default_plugins/SetGoal
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /goal_pose
- Class: rviz_default_plugins/PublishPoint
Single click: true
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /clicked_point
Transformation:
Current:
Class: rviz_default_plugins/TF
Value: true
Views:
Current:
Class: rviz_default_plugins/Orbit
Distance: 1.469738483428955
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.9903974533081055
Target Frame: <Fixed Frame>
Value: Orbit (rviz)
Yaw: 5.3835859298706055
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 1016
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd0000000400000000000001560000035afc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000035a000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000035afc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000035a000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004c70000035a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1848
X: 72
Y: 27

View File

@ -0,0 +1,130 @@
<?xml version="1.0"?>
<robot name="cyberdog2_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:property name="PI" value="3.1415926535897931" />
<!-- dimension -->
<!-- body -->
<xacro:property name="body_width" value="0.190" />
<xacro:property name="body_length" value="0.236" />
<xacro:property name="body_height" value="0.109" />
<!-- abad -->
<xacro:property name="abad_radius" value="0.039" />
<xacro:property name="abad_length" value="0.035" />
<xacro:property name="abad_offset_x" value="0.164" />
<xacro:property name="abad_offset_y" value="0.042" />
<xacro:property name="abad_rotor_offset" value="0.0642303" />
<xacro:property name="abad_max" value="39" />
<xacro:property name="abad_min" value="-39" />
<!-- hip -->
<xacro:property name="hip_shoulder_radius" value="0.039" />
<xacro:property name="hip_shoulder_length" value="0.035" />
<xacro:property name="hip_width" value="0.0250" />
<xacro:property name="hip_height" value="0.034" />
<xacro:property name="hip_offset" value="0.094" />
<xacro:property name="hip_length" value="0.12" />
<xacro:property name="hip_rotor_offset" value="-0.07577" />
<xacro:property name="hip_f_max" value="160" />
<xacro:property name="hip_f_min" value="-76" />
<xacro:property name="hip_h_max" value="180" />
<xacro:property name="hip_h_min" value="-56" />
<!-- knee -->
<xacro:property name="knee_width" value="0.016" />
<xacro:property name="knee_height" value="0.016" />
<xacro:property name="knee_length" value="0.18341" />
<xacro:property name="knee_rotor_offset" value="-0.0342303" />
<xacro:property name="knee_max" value="-30" />
<xacro:property name="knee_min" value="-145" />
<xacro:property name="knee_rubber" value="0.02" />
<!-- foot -->
<xacro:property name="foot_radius" value="0.019" />
<!-- acuator atribute -->
<xacro:property name="abadGearRatio" value="7.75" />
<xacro:property name="hipGearRatio" value="7.75" />
<xacro:property name="kneeGearRatio" value="7.75" />
<xacro:property name="abad_motorTauMax" value="1.5484" />
<xacro:property name="hip_motorTauMax" value="1.5484" />
<xacro:property name="knee_motorTauMax" value="1.5484" />
<xacro:property name="abad_motorVelMax" value="30.9971" />
<xacro:property name="hip_motorVelMax" value="30.9971" />
<xacro:property name="knee_motorVelMax" value="30.9971" />
<!-- <xacro:property name="abad_damping" value="0.01" />
<xacro:property name="hip_damping" value="0.01" />
<xacro:property name="knee_damping" value="0.01" />
<xacro:property name="abad_friction" value="0.1" />
<xacro:property name="hip_friction" value="0.1" />
<xacro:property name="knee_friction" value="0.1" /> -->
<xacro:property name="abad_damping" value="0" />
<xacro:property name="hip_damping" value="0" />
<xacro:property name="knee_damping" value="0" />
<xacro:property name="abad_friction" value="0" />
<xacro:property name="hip_friction" value="0" />
<xacro:property name="knee_friction" value="0" />
<!-- inertial&mass value -->
<!-- body -->
<xacro:property name="body_mass" value="4.030000000" />
<xacro:property name="body_com_x" value="0.027300000" />
<xacro:property name="body_com_y" value="-0.000242000" />
<xacro:property name="body_com_z" value="0.014300000" />
<xacro:property name="body_ixx" value="0.018500000" />
<xacro:property name="body_ixy" value="-0.000173000" />
<xacro:property name="body_ixz" value="-0.010200000" />
<xacro:property name="body_iyy" value="0.051700000" />
<xacro:property name="body_iyz" value="-0.000028300" />
<xacro:property name="body_izz" value="0.048300000" />
<!-- abad -->
<xacro:property name="abad_mass" value="0.354000000" />
<xacro:property name="abad_com_x" value="-0.003920000" />
<xacro:property name="abad_com_y" value="0.015000000" />
<xacro:property name="abad_com_z" value="-0.000306000" />
<xacro:property name="abad_ixx" value="0.000190000" />
<xacro:property name="abad_ixy" value="-0.000027000" />
<xacro:property name="abad_ixz" value="-0.000000344" />
<xacro:property name="abad_iyy" value="0.000276000" />
<xacro:property name="abad_iyz" value="0.000001950" />
<xacro:property name="abad_izz" value="0.000233000" />
<!-- hip -->
<xacro:property name="hip_mass" value="0.482000000" />
<xacro:property name="hip_com_x" value="-0.002120000" />
<xacro:property name="hip_com_y" value="-0.021200000" />
<xacro:property name="hip_com_z" value="-0.018400000" />
<xacro:property name="hip_ixx" value="0.001010000" />
<xacro:property name="hip_ixy" value="0.000022300" />
<xacro:property name="hip_ixz" value="-0.000038500" />
<xacro:property name="hip_iyy" value="0.000983000" />
<xacro:property name="hip_iyz" value="0.000199000" />
<xacro:property name="hip_izz" value="0.000347000" />
<!-- knee -->
<xacro:property name="knee_mass" value="0.116000000" />
<xacro:property name="knee_com_x" value="0.000600000" />
<xacro:property name="knee_com_y" value="-0.000047200" />
<xacro:property name="knee_com_z" value="-0.089300000" />
<xacro:property name="knee_ixx" value="0.000668000" />
<xacro:property name="knee_ixy" value="0.000000003" />
<xacro:property name="knee_ixz" value="0.000023700" />
<xacro:property name="knee_iyy" value="0.000674000" />
<xacro:property name="knee_iyz" value="0.000000603" />
<xacro:property name="knee_izz" value="0.000015400" />
<!-- rotor -->
<xacro:property name="rotor_mass" value="0.056700000" />
<xacro:property name="rotor_com_x" value="0" />
<xacro:property name="rotor_com_y" value="0" />
<xacro:property name="rotor_com_z" value="0" />
<xacro:property name="rotor_ixx" value="0.000025300" />
<xacro:property name="rotor_ixy" value="0" />
<xacro:property name="rotor_ixz" value="0" />
<xacro:property name="rotor_iyy" value="0.000047800" />
<xacro:property name="rotor_iyz" value="0" />
<xacro:property name="rotor_izz" value="0.000025300" />
</robot>

View File

@ -0,0 +1,252 @@
<?xml version="1.0"?>
<robot name="cyber_dog" xmlns:xacro="http://www.ros.org/wiki/xacro">
<gazebo>
<plugin name="gazebo_rt_control" filename="liblegged_plugin.so">
</plugin>
<plugin name="gazebo_rt_control" filename="libreal_time_control.so">
<robotName>$(arg ROBOT)</robotName>
</plugin>
</gazebo>
<gazebo reference="imu_link">
<gravity>true</gravity>
<sensor name="imu_sensor" type="imu">
<always_on>true</always_on>
<update_rate>500</update_rate>
<visualize>true</visualize>
<topic>__default_topic__</topic>
<plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">
<topicName>body_imu</topicName>
<bodyName>imu_link</bodyName>
<updateRateHZ>500.0</updateRateHZ>
<gaussianNoise>0.0</gaussianNoise>
<xyzOffset>0 0 0</xyzOffset>
<rpyOffset>0 0 0</rpyOffset>
<frameName>imu_link</frameName>
<ros>
<remapping>~/out:=imu</remapping>
</ros>
</plugin>
<pose>0 0 0 0 0 0</pose>
</sensor>
</gazebo>
<xacro:if value="$(arg USE_LIDAR)">
<gazebo reference="lidar_link">
<sensor name="realsense" type="ray">
<always_on>true</always_on>
<visualize>true</visualize>
<pose>0.0 0 0.0 0 0 0</pose>
<update_rate>5</update_rate>
<ray>
<scan>
<horizontal>
<samples>180</samples>
<resolution>1.000000</resolution>
<min_angle>-1.5700</min_angle>
<max_angle>1.5700</max_angle>
</horizontal>
</scan>
<range>
<min>0.01</min>
<max>12.00</max>
<resolution>0.015000</resolution>
</range>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</ray>
<plugin name="cyberdog_laserscan" filename="libgazebo_ros_ray_sensor.so">
<ros>
<remapping>~/out:=scan</remapping>
</ros>
<output_type>sensor_msgs/LaserScan</output_type>
<frame_name>lidar_link</frame_name>
</plugin>
</sensor>
</gazebo>
</xacro:if>
<!-- Foot contacts. -->
<gazebo reference="FR_knee">
<sensor name="FR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libfoot_contact_plugin.so"/>
<contact>
<collision>FR_knee_fixed_joint_lump__FR_foot_collision_2</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="FL_knee">
<sensor name="FL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libfoot_contact_plugin.so"/>
<contact>
<collision>FL_knee_fixed_joint_lump__FL_foot_collision_2</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RR_knee">
<sensor name="RR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libfoot_contact_plugin.so"/>
<contact>
<collision>RR_knee_fixed_joint_lump__RR_foot_collision_2</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RL_knee">
<sensor name="RL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libfoot_contact_plugin.so"/>
<contact>
<collision>RL_knee_fixed_joint_lump__RL_foot_collision_2</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="base">
<material>Gazebo/Green</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<gazebo reference="body">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<gazebo reference="stick_link">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/White</material>
</gazebo>
<gazebo reference="imu_link">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/Red</material>
</gazebo>
<!-- FL leg -->
<gazebo reference="FL_abad">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<gazebo reference="FL_knee">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FL_foot">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<!-- FR leg -->
<gazebo reference="FR_abad">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<gazebo reference="FR_knee">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FR_foot">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<!-- RL leg -->
<gazebo reference="RL_abad">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<gazebo reference="RL_knee">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<kp value="5000000000.0"/>
<kd value="50000.0"/>
</gazebo>
<gazebo reference="RL_foot">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<!-- RR leg -->
<gazebo reference="RR_abad">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
<gazebo reference="RR_knee">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<kp value="5000000000.0"/>
<kd value="50000.0"/>
</gazebo>
<gazebo reference="RR_foot">
<mu1>0.7</mu1>
<mu2>0.7</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="50000.0"/>
<kd value="5000.0"/>
</gazebo>
</robot>

View File

@ -0,0 +1,247 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="../xacro/transmission.xacro" />
<xacro:macro name="leg" params="name mirror mirror_dae front_hind front_hind_dae *origin">
<joint name="${name}_hip_joint" type="revolute">
<xacro:insert_block name="origin" />
<parent link="trunk" />
<child link="${name}_hip" />
<axis xyz="1 0 0" />
<dynamics damping="${abad_damping}" friction="${abad_friction}" />
<xacro:if value="${(mirror_dae == True)}">
<limit effort="${abad_motorTauMax*abadGearRatio}"
velocity="${abad_motorVelMax}" lower="${abad_min*PI/180.0}"
upper="${abad_max*PI/180.0}" />
</xacro:if>
<xacro:if value="${(mirror_dae == False)}">
<limit effort="${abad_motorTauMax*abadGearRatio}"
velocity="${abad_motorVelMax}" lower="${-abad_max*PI/180.0}"
upper="${-abad_min*PI/180.0}" />
</xacro:if>
</joint>
<link name="${name}_hip">
<visual>
<xacro:if value="${(mirror_dae == True) and (front_hind_dae == True)}">
<origin rpy="0 0 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == False) and (front_hind_dae == True)}">
<origin rpy="${PI} 0 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == True) and (front_hind_dae == False)}">
<origin rpy="0 ${PI} 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == False) and (front_hind_dae == False)}">
<origin rpy="${PI} ${PI} 0" xyz="0 0 0" />
</xacro:if>
<geometry>
<mesh filename="package://cyberdog2_description/meshes/abad.dae" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${abad_length}" radius="${abad_radius}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0"
xyz="${abad_com_x*front_hind} ${abad_com_y*mirror} ${abad_com_z}" />
<mass value="${abad_mass}" />
<inertia ixx="${abad_ixx}" ixy="${abad_ixy*mirror*front_hind}"
ixz="${abad_ixz*front_hind}" iyy="${abad_iyy}" iyz="${abad_iyz*mirror}"
izz="${abad_izz}" />
</inertial>
</link>
<!-- <joint name="${name}_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="${-abad_rotor_offset*front_hind} 0 0" />
<parent link="${name}_hip" />
<child link="${name}_hip_rotor" />
</joint> -->
<!-- this link is only for abad rotor inertial -->
<!-- <link name="${name}_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link> -->
<!-- <joint name="${name}_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 ${(hip_offset-hip_shoulder_length)*mirror} 0" />
<parent link="${name}_hip" />
<child link="${name}_thigh_shoulder" />
</joint> -->
<!-- <link name="${name}_thigh_shoulder">
<collision>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${hip_shoulder_length}" radius="${hip_shoulder_radius}" />
</geometry>
</collision>
</link> -->
<joint name="${name}_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 ${hip_offset*mirror} 0" />
<parent link="${name}_hip" />
<child link="${name}_thigh" />
<axis xyz="0 1 0" />
<dynamics damping="${hip_damping}" friction="${hip_friction}" />
<xacro:if value="${front_hind_dae == True}">
<limit effort="${hip_motorTauMax*hipGearRatio}"
velocity="${hip_motorVelMax}" lower="${hip_f_min*PI/180.0}"
upper="${hip_f_max*PI/180.0}" />
</xacro:if>
<xacro:if value="${front_hind_dae == False}">
<limit effort="${hip_motorTauMax*hipGearRatio}"
velocity="${hip_motorVelMax}" lower="${hip_h_min*PI/180.0}"
upper="${hip_h_max*PI/180.0}" />
</xacro:if>
</joint>
<link name="${name}_thigh">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<xacro:if value="${mirror_dae == True}">
<mesh filename="package://cyberdog2_description/meshes/hip.dae"
scale="1 1 1" />
</xacro:if>
<xacro:if value="${mirror_dae == False}">
<mesh filename="package://cyberdog2_description/meshes/hip_mirror.dae"
scale="1 1 1" />
</xacro:if>
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 ${PI/2.0} 0" xyz="0 0 ${-hip_length/2.0}" />
<geometry>
<box size="${hip_length} ${hip_width} ${hip_height}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="${hip_com_x} ${hip_com_y*mirror} ${hip_com_z}" />
<mass value="${hip_mass}" />
<inertia ixx="${hip_ixx}" ixy="${hip_ixy*mirror}" ixz="${hip_ixz}" iyy="${hip_iyy}"
iyz="${hip_iyz*mirror}" izz="${hip_izz}" />
</inertial>
</link>
<!-- <joint name="${name}_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 ${hip_rotor_offset*mirror} 0" />
<parent link="${name}_thigh" />
<child link="${name}_thigh_rotor" />
</joint> -->
<!-- this link is only for hip rotor inertial -->
<!-- <link name="${name}_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link> -->
<!-- <joint name="${name}_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 ${knee_rotor_offset*mirror} 0" />
<parent link="${name}_thigh" />
<child link="${name}_calf_rotor" />
</joint> -->
<!-- this link is only for knee rotor inertial -->
<!-- <link name="${name}_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link> -->
<joint name="${name}_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 ${-hip_length}" />
<parent link="${name}_thigh" />
<child link="${name}_calf" />
<axis xyz="0 1 0" />
<dynamics damping="${hip_damping}" friction="${hip_friction}" />
<limit effort="${knee_motorTauMax*kneeGearRatio}"
velocity="${knee_motorVelMax}" lower="${knee_min*PI/180.0}"
upper="${knee_max*PI/180.0}" />
</joint>
<link name="${name}_calf">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<mesh filename="package://cyberdog2_description/meshes/knee.dae" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 ${PI} 0" xyz="0 0 ${-knee_length/2.0}" />
<geometry>
<box size="${knee_height} ${knee_width} ${knee_length}" />
</geometry>
</collision>
<!-- <collision name="${name}_calf_rubber">
<origin rpy="0 ${PI} 0" xyz="${-knee_rubber/2.0} 0 -0.007" />
<geometry>
<sphere radius="0.016" />
</geometry>
<surface>
<contact>
<ode>
<max_vel>0.00001</max_vel>
<min_depth>0.0</min_depth>
</ode>
</contact>
</surface>
</collision> -->
<inertial>
<origin rpy="0 0 0" xyz="${knee_com_x} ${knee_com_y} ${knee_com_z}" />
<mass value="${knee_mass}" />
<inertia ixx="${knee_ixx}" ixy="${knee_ixy}" ixz="${knee_ixz}" iyy="${knee_iyy}"
iyz="${knee_iyz}" izz="${knee_izz}" />
</inertial>
</link>
<joint name="${name}_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0.0055 0 ${-knee_length+foot_radius/2.0}" />
<parent link="${name}_calf" />
<child link="${name}_foot" />
</joint>
<link name="${name}_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<sphere radius="${foot_radius-0.01}" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<sphere radius="${foot_radius}" />
</geometry>
<surface>
<contact>
<ode>
<max_vel>0.001</max_vel>
<min_depth>0.0</min_depth>
</ode>
</contact>
</surface>
</collision>
</link>
<xacro:leg_transmission name="${name}" />
</xacro:macro>
</robot>

View File

@ -0,0 +1,228 @@
<?xml version="1.0"?>
<robot name="cyberdog2_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:arg name="ROBOT" default="cyberdog2_description" />
<xacro:arg name="USE_LIDAR" default="false" />
<xacro:include filename="const.xacro" />
<xacro:include filename="leg.xacro" />
<!-- <xacro:include filename="gazebo.xacro" /> -->
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
<material name="silver">
<color rgba="0.913725490196 0.913725490196 0.847058823529 1.0"/>
</material>
<material name="orange">
<color rgba="0.12 0.15 0.2 1.0"/>
</material>
<material name="brown">
<color rgba="0.870588235294 0.811764705882 0.764705882353 1.0"/>
</material>
<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<link name="base">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
</link>
<joint name="floating_base" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base" />
<child link="trunk" />
</joint>
<link name="trunk">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<mesh filename="package://cyberdog2_description/meshes/body.dae" scale="1 1 1" />
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="${body_length} ${body_width} ${body_height}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="${body_com_x} ${body_com_y} ${body_com_z}" />
<mass value="${body_mass}" />
<inertia ixx="${body_ixx}" ixy="${body_ixy}" ixz="${body_ixz}" iyy="${body_iyy}" iyz="${body_iyz}" izz="${body_izz}" />
</inertial>
</link>
<joint name="imu_joint" type="fixed">
<parent link="trunk" />
<child link="imu_link" />
<origin rpy="0 0 0" xyz="33.4e-3 -17.2765e-3 51.0469e-3" />
</joint>
<link name="imu_link">
<inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
<!-- <collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size=".001 .001 .001" />
</geometry>
</collision> -->
</link>
<!-- <joint name="scan_joint" type="fixed">
<parent link="body" />
<child link="lidar_link" />
<origin rpy="0 0 0" xyz="0.21425 0 0.0908" />
</joint>
<link name="lidar_link">
<inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
</link>
<joint name="D435_camera_joint" type="fixed">
<parent link="body" />
<child link="D435_camera_link" />
<origin rpy="0 0 0" xyz="271.994e-3 25e-3 114.912e-3" />
</joint>
<link name="D435_camera_link">
<inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size=".001 .001 .001" />
</geometry>
</collision>
</link>
<joint name="RGB_camera_joint" type="fixed">
<parent link="body" />
<child link="RGB_camera_link" />
<origin rpy="0 0 0" xyz="275.76e-3 0 125.794e-3" />
</joint>
<link name="RGB_camera_link">
<inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size=".001 .001 .001" />
</geometry>
</collision>
</link>
<joint name="AI_camera_joint" type="fixed">
<parent link="body" />
<child link="AI_camera_link" />
<origin rpy="0 0 0" xyz="290.228e-3 0 147.420e-3" />
</joint>
<link name="AI_camera_link">
<inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size=".001 .001 .001" />
</geometry>
</collision>
</link> -->
<xacro:leg name="FR" mirror="-1" mirror_dae="False" front_hind="1" front_hind_dae="True">
<origin rpy="0 0 0" xyz="${abad_offset_x} ${-abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="FL" mirror="1" mirror_dae="True" front_hind="1" front_hind_dae="True">
<origin rpy="0 0 0" xyz="${abad_offset_x} ${abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="RR" mirror="-1" mirror_dae="False" front_hind="-1" front_hind_dae="False">
<origin rpy="0 0 0" xyz="${-abad_offset_x} ${-abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="RL" mirror="1" mirror_dae="True" front_hind="-1" front_hind_dae="False">
<origin rpy="0 0 0" xyz="${-abad_offset_x} ${abad_offset_y} 0" />
</xacro:leg>
<!-- This link is only for head collision -->
<!-- <joint name="head_joint" type="fixed">
<parent link="trunk" />
<child link="head" />
<origin rpy="0 0 0" xyz="0 0 0" />
</joint>
<link name="head">
<collision>
<origin rpy="0 0 0" xyz="0.256 0 0.120" />
<geometry>
<box size="0.076 0.060 0.040" />
</geometry>
</collision>
<collision>
<origin rpy="0 0 0" xyz="0.225 0 0.150" />
<geometry>
<box size="0.020 0.080 0.100" />
</geometry>
</collision>
</link> -->
</robot>

View File

@ -0,0 +1,41 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="leg_transmission" params="name">
<transmission name="${name}_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${abadGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${name}_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${hipGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${name}_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${kneeGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
</robot>

View File

@ -1,7 +1,6 @@
<launch>
<param name="robot_description" textfile="$(find cyberdog_description)/urdf/cyberdog_description.urdf"/>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find cyberdog_description)/xacro/robot.xacro'"/>
<!-- send fake joint values -->
<!-- <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher">
<param name="use_gui" value="TRUE"/>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="2">
<name>cyberdog_description</name>
<version>1.0.0</version>
<version>2.0.0</version>
<description>The cyberdog_description package</description>
<author>TODO</author>
<maintainer email="TODO@email.com" />

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,775 @@
<?xml version="1.0" ?>
<robot name="cyberdog_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
<material name="silver">
<color rgba="0.913725490196 0.913725490196 0.847058823529 1.0"/>
</material>
<material name="orange">
<color rgba="0.12 0.15 0.2 1.0"/>
</material>
<material name="brown">
<color rgba="0.870588235294 0.811764705882 0.764705882353 1.0"/>
</material>
<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<link name="base">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</visual>
</link>
<joint name="floating_base" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base"/>
<child link="trunk"/>
</joint>
<link name="trunk">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.36 0.23 0.15"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.36 0.23 0.15"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.018785003 0.003291012 -0.000925646"/>
<mass value="6.248410872"/>
<inertia ixx="0.032143039" ixy="-0.000268204" ixz="-0.00241341" iyy="0.13578316" iyz="8.0244e-05" izz="0.14828095"/>
</inertial>
</link>
<joint name="imu_joint" type="fixed">
<parent link="trunk"/>
<child link="imu_link"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
</joint>
<link name="imu_link">
</link>
<joint name="FR_hip_joint" type="revolute">
<origin rpy="0 0 0" xyz="0.23035 -0.05 0"/>
<parent link="trunk"/>
<child link="FR_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-0.76096355387" upper="0.76096355387" velocity="31"/>
</joint>
<link name="FR_hip">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.001597914 -0.001680938 2.253e-06"/>
<mass value="0.537806728"/>
<inertia ixx="0.000403612" ixy="9.337e-06" ixz="5.36e-07" iyy="0.000600779" iyz="6.3e-08" izz="0.000417249"/>
</inertial>
</link>
<joint name="FR_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="-0.0832504 0 0"/>
<parent link="FR_hip"/>
<child link="FR_hip_rotor"/>
</joint>
<!-- this link is only for abad rotor inertial -->
<link name="FR_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FR_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.053076000000000005 0"/>
<parent link="FR_hip"/>
<child link="FR_thigh_shoulder"/>
</joint>
<link name="FR_thigh_shoulder">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
</link>
<joint name="FR_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 -0.105076 0"/>
<parent link="FR_hip"/>
<child link="FR_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-1.88495559215" upper="3.76991118431" velocity="31"/>
</joint>
<link name="FR_thigh">
<visual>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003205778 0.027811623 -0.027767048"/>
<mass value="0.950266218"/>
<inertia ixx="0.004811898" ixy="-9.3647e-05" ixz="-0.000208709" iyy="0.004752366" iyz="-0.000813258" izz="0.001079691"/>
</inertial>
</link>
<joint name="FR_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 0.107226 0"/>
<parent link="FR_thigh"/>
<child link="FR_thigh_rotor"/>
</joint>
<!-- this link is only for hip rotor inertial -->
<link name="FR_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FR_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 0.0426259 0"/>
<parent link="FR_thigh"/>
<child link="FR_calf_rotor"/>
</joint>
<!-- this link is only for knee rotor inertial -->
<link name="FR_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FR_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 -0.2"/>
<parent link="FR_thigh"/>
<child link="FR_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-2.49582083035" upper="-0.717155789644" velocity="31"/>
</joint>
<link name="FR_calf">
<visual>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
<material name="silver"/>
</visual>
<visual name="FR_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</visual>
<collision>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
</collision>
<collision name="FR_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.007372358 0.000122423 -0.10769301"/>
<mass value="0.1135916"/>
<inertia ixx="0.000667971" ixy="-1e-09" ixz="5.356e-06" iyy="0.000674399" iyz="-1.5e-08" izz="1.4181e-05"/>
</inertial>
</link>
<joint name="FR_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0 0 -0.19999999999999998"/>
<parent link="FR_calf"/>
<child link="FR_foot"/>
</joint>
<link name="FR_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
</collision>
</link>
<joint name="FL_hip_joint" type="revolute">
<origin rpy="0 0 0" xyz="0.23035 0.05 0"/>
<parent link="trunk"/>
<child link="FL_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-0.76096355387" upper="0.76096355387" velocity="31"/>
</joint>
<link name="FL_hip">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.001597914 0.001680938 2.253e-06"/>
<mass value="0.537806728"/>
<inertia ixx="0.000403612" ixy="-9.337e-06" ixz="5.36e-07" iyy="0.000600779" iyz="-6.3e-08" izz="0.000417249"/>
</inertial>
</link>
<joint name="FL_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="-0.0832504 0 0"/>
<parent link="FL_hip"/>
<child link="FL_hip_rotor"/>
</joint>
<!-- this link is only for abad rotor inertial -->
<link name="FL_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FL_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0.053076000000000005 0"/>
<parent link="FL_hip"/>
<child link="FL_thigh_shoulder"/>
</joint>
<link name="FL_thigh_shoulder">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
</link>
<joint name="FL_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0.105076 0"/>
<parent link="FL_hip"/>
<child link="FL_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-1.88495559215" upper="3.76991118431" velocity="31"/>
</joint>
<link name="FL_thigh">
<visual>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003205778 -0.027811623 -0.027767048"/>
<mass value="0.950266218"/>
<inertia ixx="0.004811898" ixy="9.3647e-05" ixz="-0.000208709" iyy="0.004752366" iyz="0.000813258" izz="0.001079691"/>
</inertial>
</link>
<joint name="FL_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.107226 0"/>
<parent link="FL_thigh"/>
<child link="FL_thigh_rotor"/>
</joint>
<!-- this link is only for hip rotor inertial -->
<link name="FL_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FL_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.0426259 0"/>
<parent link="FL_thigh"/>
<child link="FL_calf_rotor"/>
</joint>
<!-- this link is only for knee rotor inertial -->
<link name="FL_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="FL_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 -0.2"/>
<parent link="FL_thigh"/>
<child link="FL_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-2.49582083035" upper="-0.717155789644" velocity="31"/>
</joint>
<link name="FL_calf">
<visual>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
<material name="silver"/>
</visual>
<visual name="FL_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</visual>
<collision>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
</collision>
<collision name="FL_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.007372358 0.000122423 -0.10769301"/>
<mass value="0.1135916"/>
<inertia ixx="0.000667971" ixy="-1e-09" ixz="5.356e-06" iyy="0.000674399" iyz="-1.5e-08" izz="1.4181e-05"/>
</inertial>
</link>
<joint name="FL_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0 0 -0.19999999999999998"/>
<parent link="FL_calf"/>
<child link="FL_foot"/>
</joint>
<link name="FL_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
</collision>
</link>
<joint name="RR_hip_joint" type="revolute">
<origin rpy="0 0 0" xyz="-0.23035 -0.05 0"/>
<parent link="trunk"/>
<child link="RR_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-0.76096355387" upper="0.76096355387" velocity="31"/>
</joint>
<link name="RR_hip">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.001597914 -0.001680938 2.253e-06"/>
<mass value="0.537806728"/>
<inertia ixx="0.000403612" ixy="-9.337e-06" ixz="-5.36e-07" iyy="0.000600779" iyz="6.3e-08" izz="0.000417249"/>
</inertial>
</link>
<joint name="RR_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0.0832504 0 0"/>
<parent link="RR_hip"/>
<child link="RR_hip_rotor"/>
</joint>
<!-- this link is only for abad rotor inertial -->
<link name="RR_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RR_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.053076000000000005 0"/>
<parent link="RR_hip"/>
<child link="RR_thigh_shoulder"/>
</joint>
<link name="RR_thigh_shoulder">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
</link>
<joint name="RR_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 -0.105076 0"/>
<parent link="RR_hip"/>
<child link="RR_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-1.88495559215" upper="3.76991118431" velocity="31"/>
</joint>
<link name="RR_thigh">
<visual>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003205778 0.027811623 -0.027767048"/>
<mass value="0.950266218"/>
<inertia ixx="0.004811898" ixy="-9.3647e-05" ixz="-0.000208709" iyy="0.004752366" iyz="-0.000813258" izz="0.001079691"/>
</inertial>
</link>
<joint name="RR_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 0.107226 0"/>
<parent link="RR_thigh"/>
<child link="RR_thigh_rotor"/>
</joint>
<!-- this link is only for hip rotor inertial -->
<link name="RR_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RR_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 0.0426259 0"/>
<parent link="RR_thigh"/>
<child link="RR_calf_rotor"/>
</joint>
<!-- this link is only for knee rotor inertial -->
<link name="RR_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RR_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 -0.2"/>
<parent link="RR_thigh"/>
<child link="RR_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-2.49582083035" upper="-0.717155789644" velocity="31"/>
</joint>
<link name="RR_calf">
<visual>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
<material name="silver"/>
</visual>
<visual name="RR_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</visual>
<collision>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
</collision>
<collision name="RR_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.007372358 0.000122423 -0.10769301"/>
<mass value="0.1135916"/>
<inertia ixx="0.000667971" ixy="-1e-09" ixz="5.356e-06" iyy="0.000674399" iyz="-1.5e-08" izz="1.4181e-05"/>
</inertial>
</link>
<joint name="RR_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0 0 -0.19999999999999998"/>
<parent link="RR_calf"/>
<child link="RR_foot"/>
</joint>
<link name="RR_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
</collision>
</link>
<!-- <xacro:leg_transmission name="${name}" /> -->
<joint name="RL_hip_joint" type="revolute">
<origin rpy="0 0 0" xyz="-0.23035 0.05 0"/>
<parent link="trunk"/>
<child link="RL_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-0.76096355387" upper="0.76096355387" velocity="31"/>
</joint>
<link name="RL_hip">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.001597914 0.001680938 2.253e-06"/>
<mass value="0.537806728"/>
<inertia ixx="0.000403612" ixy="9.337e-06" ixz="-5.36e-07" iyy="0.000600779" iyz="-6.3e-08" izz="0.000417249"/>
</inertial>
</link>
<joint name="RL_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0.0832504 0 0"/>
<parent link="RL_hip"/>
<child link="RL_hip_rotor"/>
</joint>
<!-- this link is only for abad rotor inertial -->
<link name="RL_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RL_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0.053076000000000005 0"/>
<parent link="RL_hip"/>
<child link="RL_thigh_shoulder"/>
</joint>
<link name="RL_thigh_shoulder">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.052" radius="0.047"/>
</geometry>
</collision>
</link>
<joint name="RL_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0.105076 0"/>
<parent link="RL_hip"/>
<child link="RL_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-1.88495559215" upper="3.76991118431" velocity="31"/>
</joint>
<link name="RL_thigh">
<visual>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 1.5707963267948966 0" xyz="0 0 -0.1"/>
<geometry>
<box size="0.2 0.035 0.05"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003205778 -0.027811623 -0.027767048"/>
<mass value="0.950266218"/>
<inertia ixx="0.004811898" ixy="9.3647e-05" ixz="-0.000208709" iyy="0.004752366" iyz="0.000813258" izz="0.001079691"/>
</inertial>
</link>
<joint name="RL_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.107226 0"/>
<parent link="RL_thigh"/>
<child link="RL_thigh_rotor"/>
</joint>
<!-- this link is only for hip rotor inertial -->
<link name="RL_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RL_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.0426259 0"/>
<parent link="RL_thigh"/>
<child link="RL_calf_rotor"/>
</joint>
<!-- this link is only for knee rotor inertial -->
<link name="RL_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="0.076506382"/>
<inertia ixx="4.5843e-05" ixy="0" ixz="0" iyy="4.5871e-05" iyz="0" izz="8.9031e-05"/>
</inertial>
</link>
<joint name="RL_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 -0.2"/>
<parent link="RL_thigh"/>
<child link="RL_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="24" lower="-2.49582083035" upper="-0.717155789644" velocity="31"/>
</joint>
<link name="RL_calf">
<visual>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
<material name="silver"/>
</visual>
<visual name="RL_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</visual>
<collision>
<origin rpy="0 3.141592653589793 0" xyz="0 0 -0.1045"/>
<geometry>
<box size="0.016 0.016 0.209"/>
</geometry>
</collision>
<collision name="RL_calf_rubber">
<origin rpy="0 3.141592653589793 0" xyz="-0.0125 0 -0.007"/>
<geometry>
<sphere radius="0.016"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.007372358 0.000122423 -0.10769301"/>
<mass value="0.1135916"/>
<inertia ixx="0.000667971" ixy="-1e-09" ixz="5.356e-06" iyy="0.000674399" iyz="-1.5e-08" izz="1.4181e-05"/>
</inertial>
</link>
<joint name="RL_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0 0 -0.19999999999999998"/>
<parent link="RL_calf"/>
<child link="RL_foot"/>
</joint>
<link name="RL_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.018"/>
</geometry>
</collision>
</link>
</robot>

View File

@ -0,0 +1,124 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:property name="PI" value="3.1415926535897931" />
<!-- dimension -->
<!-- body -->
<xacro:property name="body_width" value="0.23" />
<xacro:property name="body_length" value="0.36" />
<xacro:property name="body_height" value="0.15" />
<!-- abad -->
<xacro:property name="abad_radius" value="0.047" />
<xacro:property name="abad_length" value="0.052" />
<xacro:property name="abad_offset_x" value="0.23035" />
<xacro:property name="abad_offset_y" value="0.05" />
<xacro:property name="abad_rotor_offset" value="0.0832504" />
<xacro:property name="abad_max" value="0.76096355387" />
<xacro:property name="abad_min" value="-0.76096355387" />
<!-- hip -->
<xacro:property name="hip_shoulder_radius" value="0.047" />
<xacro:property name="hip_shoulder_length" value="0.052" />
<xacro:property name="hip_width" value="0.035" />
<xacro:property name="hip_height" value="0.050" />
<xacro:property name="hip_offset" value="0.105076" />
<xacro:property name="hip_length" value="0.2" />
<xacro:property name="hip_rotor_offset" value="-0.107226" />
<xacro:property name="hip_f_max" value="3.76991118431" />
<xacro:property name="hip_f_min" value="-1.88495559215" />
<xacro:property name="hip_h_max" value="3.76991118431" />
<xacro:property name="hip_h_min" value="-1.88495559215" />
<!-- knee -->
<xacro:property name="knee_width" value="0.016" />
<xacro:property name="knee_height" value="0.016" />
<xacro:property name="knee_length" value="0.209" />
<xacro:property name="knee_rotor_offset" value="-0.0426259" />
<xacro:property name="knee_max" value="-0.717155789644" />
<xacro:property name="knee_min" value="-2.49582083035" />
<xacro:property name="knee_rubber" value="0.025" />
<!-- foot -->
<xacro:property name="foot_radius" value="0.018" />
<!-- acuator atribute -->
<xacro:property name="abadGearRatio" value="1" />
<xacro:property name="hipGearRatio" value="1" />
<xacro:property name="kneeGearRatio" value="1" />
<xacro:property name="abad_motorTauMax" value="24" />
<xacro:property name="hip_motorTauMax" value="24" />
<xacro:property name="knee_motorTauMax" value="24" />
<xacro:property name="abad_motorVelMax" value="31" />
<xacro:property name="hip_motorVelMax" value="31" />
<xacro:property name="knee_motorVelMax" value="31" />
<xacro:property name="abad_damping" value="0" />
<xacro:property name="hip_damping" value="0" />
<xacro:property name="knee_damping" value="0" />
<xacro:property name="abad_friction" value="0" />
<xacro:property name="hip_friction" value="0" />
<xacro:property name="knee_friction" value="0" />
<!-- inertial&mass value -->
<!-- body -->
<xacro:property name="body_mass" value="6.248410872" />
<xacro:property name="body_com_x" value="0.018785003" />
<xacro:property name="body_com_y" value="0.003291012" />
<xacro:property name="body_com_z" value="-0.000925646" />
<xacro:property name="body_ixx" value="0.032143039" />
<xacro:property name="body_ixy" value="-0.000268204" />
<xacro:property name="body_ixz" value="-0.00241341" />
<xacro:property name="body_iyy" value="0.13578316" />
<xacro:property name="body_iyz" value="0.000080244" />
<xacro:property name="body_izz" value="0.14828095" />
<!-- abad -->
<xacro:property name="abad_mass" value="0.537806728" />
<xacro:property name="abad_com_x" value="-0.001597914" />
<xacro:property name="abad_com_y" value="0.001680938" />
<xacro:property name="abad_com_z" value="0.000002253" />
<xacro:property name="abad_ixx" value="0.000403612" />
<xacro:property name="abad_ixy" value="-0.000009337" />
<xacro:property name="abad_ixz" value="0.000000536" />
<xacro:property name="abad_iyy" value="0.000600779" />
<xacro:property name="abad_iyz" value="-0.000000063" />
<xacro:property name="abad_izz" value="0.000417249" />
<!-- hip -->
<xacro:property name="hip_mass" value="0.950266218" />
<xacro:property name="hip_com_x" value="-0.003205778" />
<xacro:property name="hip_com_y" value="-0.027811623" />
<xacro:property name="hip_com_z" value="-0.027767048" />
<xacro:property name="hip_ixx" value="0.004811898" />
<xacro:property name="hip_ixy" value="0.000093647" />
<xacro:property name="hip_ixz" value="-0.000208709" />
<xacro:property name="hip_iyy" value="0.004752366" />
<xacro:property name="hip_iyz" value="0.000813258" />
<xacro:property name="hip_izz" value="0.001079691" />
<!-- knee -->
<xacro:property name="knee_mass" value="0.1135916" />
<xacro:property name="knee_com_x" value="0.007372358" />
<xacro:property name="knee_com_y" value="0.000122423" />
<xacro:property name="knee_com_z" value="-0.10769301" />
<xacro:property name="knee_ixx" value="0.000667971" />
<xacro:property name="knee_ixy" value="-0.000000001" />
<xacro:property name="knee_ixz" value="0.000005356" />
<xacro:property name="knee_iyy" value="0.000674399" />
<xacro:property name="knee_iyz" value="-0.000000015" />
<xacro:property name="knee_izz" value="0.000014181" />
<!-- rotor -->
<xacro:property name="rotor_mass" value="0.076506382" />
<xacro:property name="rotor_com_x" value="0" />
<xacro:property name="rotor_com_y" value="0" />
<xacro:property name="rotor_com_z" value="0" />
<xacro:property name="rotor_ixx" value="0.000045843" />
<xacro:property name="rotor_ixy" value="0" />
<xacro:property name="rotor_ixz" value="0" />
<xacro:property name="rotor_iyy" value="0.000045871" />
<xacro:property name="rotor_iyz" value="0" />
<xacro:property name="rotor_izz" value="0.000089031" />
</robot>

View File

@ -0,0 +1,266 @@
<?xml version="1.0"?>
<robot>
<!-- ros_control plugin -->
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNamespace>/cyberdog_gazebo</robotNamespace>
<robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
</plugin>
</gazebo>
<!-- Show the trajectory of trunk center. -->
<gazebo>
<plugin name="3dplot" filename="libLinkPlot3DPlugin.so">
<frequency>10</frequency>
<plot>
<link>base</link>
<pose>0 0 0 0 0 0</pose>
<material>Gazebo/Yellow</material>
</plot>
</plugin>
</gazebo>
<!-- Show the trajectory of foot. You can add another trajectory about another foot. -->
<!-- <gazebo>
<plugin name="3dplot" filename="libLinkPlot3DPlugin.so">
<frequency>100</frequency>
<plot>
<link>FL_foot</link>
<pose>0 0 0 0 0 0</pose>
<material>Gazebo/Green</material>
</plot>
</plugin>
</gazebo> -->
<gazebo>
<plugin filename="libgazebo_ros_force.so" name="gazebo_ros_force">
<bodyName>trunk</bodyName>
<topicName>/apply_force/trunk</topicName>
</plugin>
</gazebo>
<gazebo reference="imu_link">
<gravity>true</gravity>
<sensor name="imu_sensor" type="imu">
<always_on>true</always_on>
<update_rate>1000</update_rate>
<visualize>true</visualize>
<topic>__default_topic__</topic>
<plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">
<topicName>trunk_imu</topicName>
<bodyName>imu_link</bodyName>
<updateRateHZ>1000.0</updateRateHZ>
<gaussianNoise>0.0</gaussianNoise>
<xyzOffset>0 0 0</xyzOffset>
<rpyOffset>0 0 0</rpyOffset>
<frameName>imu_link</frameName>
</plugin>
<pose>0 0 0 0 0 0</pose>
</sensor>
</gazebo>
<!-- Foot contacts. -->
<gazebo reference="FR_calf">
<sensor name="FR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libunitreeFootContactPlugin.so"/>
<contact>
<collision>FR_calf_fixed_joint_lump__FR_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="FL_calf">
<sensor name="FL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libunitreeFootContactPlugin.so"/>
<contact>
<collision>FL_calf_fixed_joint_lump__FL_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RR_calf">
<sensor name="RR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libunitreeFootContactPlugin.so"/>
<contact>
<collision>RR_calf_fixed_joint_lump__RR_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RL_calf">
<sensor name="RL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin name="contactPlugin" filename="libunitreeFootContactPlugin.so"/>
<contact>
<collision>RL_calf_fixed_joint_lump__RL_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<!-- Visualization of Foot contacts. -->
<gazebo reference="FR_foot">
<visual>
<plugin name="drawForcePlugin" filename="libunitreeDrawForcePlugin.so">
<topicName>FR_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="FL_foot">
<visual>
<plugin name="drawForcePlugin" filename="libunitreeDrawForcePlugin.so">
<topicName>FL_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="RR_foot">
<visual>
<plugin name="drawForcePlugin" filename="libunitreeDrawForcePlugin.so">
<topicName>RR_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="RL_foot">
<visual>
<plugin name="drawForcePlugin" filename="libunitreeDrawForcePlugin.so">
<topicName>RL_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="base">
<material>Gazebo/Green</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<gazebo reference="trunk">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="stick_link">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/White</material>
</gazebo>
<gazebo reference="imu_link">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/Red</material>
</gazebo>
<!-- FL leg -->
<gazebo reference="FL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FL_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="FL_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FL_foot">
<mu1>0.6</mu1>
<mu2>0.6</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- FR leg -->
<gazebo reference="FR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FR_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="FR_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FR_foot">
<mu1>0.6</mu1>
<mu2>0.6</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- RL leg -->
<gazebo reference="RL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RL_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="RL_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="RL_foot">
<mu1>0.6</mu1>
<mu2>0.6</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- RR leg -->
<gazebo reference="RR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RR_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="RR_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="RR_foot">
<mu1>0.6</mu1>
<mu2>0.6</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
</robot>

View File

@ -0,0 +1,281 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="../xacro/transmission.xacro" />
<xacro:macro name="leg" params="name mirror mirror_dae front_hind front_hind_dae *origin">
<joint name="${name}_hip_joint" type="revolute">
<xacro:insert_block name="origin" />
<parent link="trunk" />
<child link="${name}_hip" />
<axis xyz="1 0 0" />
<dynamics damping="${abad_damping}" friction="${abad_friction}" />
<xacro:if value="${(mirror_dae == True)}">
<limit effort="${abad_motorTauMax*abadGearRatio}"
velocity="${abad_motorVelMax}" lower="${abad_min}"
upper="${abad_max}" />
</xacro:if>
<xacro:if value="${(mirror_dae == False)}">
<limit effort="${abad_motorTauMax*abadGearRatio}"
velocity="${abad_motorVelMax}" lower="${-abad_max}"
upper="${-abad_min}" />
</xacro:if>
</joint>
<link name="${name}_hip">
<!-- <visual>
<xacro:if value="${(mirror_dae == True) and (front_hind_dae == True)}">
<origin rpy="0 0 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == False) and (front_hind_dae == True)}">
<origin rpy="${PI} 0 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == True) and (front_hind_dae == False)}">
<origin rpy="0 ${PI} 0" xyz="0 0 0" />
</xacro:if>
<xacro:if value="${(mirror_dae == False) and (front_hind_dae == False)}">
<origin rpy="${PI} ${PI} 0" xyz="0 0 0" />
</xacro:if>
<geometry>
<mesh filename="package://cyberdog_new_description/meshes/abad.dae" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual> -->
<visual>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${abad_length}" radius="${abad_radius}" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${abad_length}" radius="${abad_radius}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0"
xyz="${abad_com_x*front_hind} ${abad_com_y*mirror} ${abad_com_z}" />
<mass value="${abad_mass}" />
<inertia ixx="${abad_ixx}" ixy="${abad_ixy*mirror*front_hind}"
ixz="${abad_ixz*front_hind}" iyy="${abad_iyy}" iyz="${abad_iyz*mirror}"
izz="${abad_izz}" />
</inertial>
</link>
<joint name="${name}_hip_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="${-abad_rotor_offset*front_hind} 0 0" />
<parent link="${name}_hip" />
<child link="${name}_hip_rotor" />
</joint>
<!-- this link is only for abad rotor inertial -->
<link name="${name}_hip_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link>
<joint name="${name}_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 ${(hip_offset-hip_shoulder_length)*mirror} 0" />
<parent link="${name}_hip" />
<child link="${name}_thigh_shoulder" />
</joint>
<link name="${name}_thigh_shoulder">
<visual>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${hip_shoulder_length}" radius="${hip_shoulder_radius}" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin rpy="${PI/2.0} 0 0" xyz="0 0 0" />
<geometry>
<cylinder length="${hip_shoulder_length}" radius="${hip_shoulder_radius}" />
</geometry>
</collision>
</link>
<joint name="${name}_thigh_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 ${hip_offset*mirror} 0" />
<parent link="${name}_hip" />
<child link="${name}_thigh" />
<axis xyz="0 1 0" />
<dynamics damping="${hip_damping}" friction="${hip_friction}" />
<xacro:if value="${front_hind_dae == True}">
<limit effort="${hip_motorTauMax*hipGearRatio}"
velocity="${hip_motorVelMax}" lower="${hip_f_min}"
upper="${hip_f_max}" />
</xacro:if>
<xacro:if value="${front_hind_dae == False}">
<limit effort="${hip_motorTauMax*hipGearRatio}"
velocity="${hip_motorVelMax}" lower="${hip_h_min}"
upper="${hip_h_max}" />
</xacro:if>
</joint>
<link name="${name}_thigh">
<!-- <visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<xacro:if value="${mirror_dae == True}">
<mesh filename="package://cyberdog_new_description/meshes/hip.dae"
scale="1 1 1" />
</xacro:if>
<xacro:if value="${mirror_dae == False}">
<mesh filename="package://cyberdog_new_description/meshes/hip_mirror.dae"
scale="1 1 1" />
</xacro:if>
</geometry>
<material name="orange" />
</visual> -->
<visual>
<origin rpy="0 ${PI/2.0} 0" xyz="0 0 ${-hip_length/2.0}" />
<geometry>
<box size="${hip_length} ${hip_width} ${hip_height}" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin rpy="0 ${PI/2.0} 0" xyz="0 0 ${-hip_length/2.0}" />
<geometry>
<box size="${hip_length} ${hip_width} ${hip_height}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="${hip_com_x} ${hip_com_y*mirror} ${hip_com_z}" />
<mass value="${hip_mass}" />
<inertia ixx="${hip_ixx}" ixy="${hip_ixy*mirror}" ixz="${hip_ixz}" iyy="${hip_iyy}"
iyz="${hip_iyz*mirror}" izz="${hip_izz}" />
</inertial>
</link>
<joint name="${name}_thigh_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 ${hip_rotor_offset*mirror} 0" />
<parent link="${name}_thigh" />
<child link="${name}_thigh_rotor" />
</joint>
<!-- this link is only for hip rotor inertial -->
<link name="${name}_thigh_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link>
<joint name="${name}_calf_rotor_fix" type="fixed">
<origin rpy="0 0 0" xyz="0 ${knee_rotor_offset*mirror} 0" />
<parent link="${name}_thigh" />
<child link="${name}_calf_rotor" />
</joint>
<!-- this link is only for knee rotor inertial -->
<link name="${name}_calf_rotor">
<inertial>
<origin rpy="0 0 0" xyz="${rotor_com_x} ${rotor_com_y} ${rotor_com_z}" />
<mass value="${rotor_mass}" />
<inertia ixx="${rotor_ixx}" ixy="${rotor_ixy}" ixz="${rotor_ixz}" iyy="${rotor_iyy}" iyz="${rotor_iyz}" izz="${rotor_izz}" />
</inertial>
</link>
<joint name="${name}_calf_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 ${-hip_length}" />
<parent link="${name}_thigh" />
<child link="${name}_calf" />
<axis xyz="0 1 0" />
<dynamics damping="${hip_damping}" friction="${hip_friction}" />
<limit effort="${knee_motorTauMax*kneeGearRatio}"
velocity="${knee_motorVelMax}" lower="${knee_min}"
upper="${knee_max}" />
</joint>
<link name="${name}_calf">
<!-- <visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<mesh filename="package://cyberdog_new_description/meshes/knee.dae" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual> -->
<visual>
<origin rpy="0 ${PI} 0" xyz="0 0 ${-knee_length/2.0}" />
<geometry>
<box size="${knee_height} ${knee_width} ${knee_length}" />
</geometry>
<material name="silver" />
</visual>
<visual name="${name}_calf_rubber">
<origin rpy="0 ${PI} 0" xyz="${-knee_rubber/2.0} 0 -0.007" />
<geometry>
<sphere radius="0.016" />
</geometry>
</visual>
<collision>
<origin rpy="0 ${PI} 0" xyz="0 0 ${-knee_length/2.0}" />
<geometry>
<box size="${knee_height} ${knee_width} ${knee_length}" />
</geometry>
</collision>
<collision name="${name}_calf_rubber">
<origin rpy="0 ${PI} 0" xyz="${-knee_rubber/2.0} 0 -0.007" />
<geometry>
<sphere radius="0.016" />
</geometry>
<surface>
<contact>
<ode>
<max_vel>0.00001</max_vel>
<min_depth>0.0</min_depth>
</ode>
</contact>
</surface>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="${knee_com_x} ${knee_com_y} ${knee_com_z}" />
<mass value="${knee_mass}" />
<inertia ixx="${knee_ixx}" ixy="${knee_ixy}" ixz="${knee_ixz}" iyy="${knee_iyy}"
iyz="${knee_iyz}" izz="${knee_izz}" />
</inertial>
</link>
<joint name="${name}_foot_fixed" type="fixed" dont_collapse="true">
<origin rpy="0 0 0" xyz="0 0 ${-knee_length+foot_radius/2.0}" />
<parent link="${name}_calf" />
<child link="${name}_foot" />
</joint>
<link name="${name}_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<sphere radius="${foot_radius}" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<sphere radius="${foot_radius}" />
</geometry>
<surface>
<contact>
<ode>
<max_vel>0.001</max_vel>
<min_depth>0.0</min_depth>
</ode>
</contact>
</surface>
</collision>
</link>
<xacro:leg_transmission name="${name}" />
</xacro:macro>
</robot>

View File

@ -0,0 +1,122 @@
<?xml version="1.0"?>
<robot name="cyberdog_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:arg name="ROBOT" default="cyberdog_description" />
<xacro:arg name="USE_LIDAR" default="false" />
<xacro:include filename="const.xacro" />
<xacro:include filename="leg.xacro" />
<xacro:include filename="gazebo.xacro" />
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
<material name="silver">
<color rgba="0.913725490196 0.913725490196 0.847058823529 1.0"/>
</material>
<material name="orange">
<color rgba="0.12 0.15 0.2 1.0"/>
</material>
<material name="brown">
<color rgba="0.870588235294 0.811764705882 0.764705882353 1.0"/>
</material>
<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<link name="base">
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
</link>
<joint name="floating_base" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base" />
<child link="trunk" />
</joint>
<link name="trunk">
<!-- <visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<mesh filename="package://cyberdog_new_description/meshes/body.dae" scale="1 1 1" />
</geometry>
</visual> -->
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="${body_length} ${body_width} ${body_height}" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="${body_length} ${body_width} ${body_height}" />
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="${body_com_x} ${body_com_y} ${body_com_z}" />
<mass value="${body_mass}" />
<inertia ixx="${body_ixx}" ixy="${body_ixy}" ixz="${body_ixz}" iyy="${body_iyy}" iyz="${body_iyz}" izz="${body_izz}" />
</inertial>
</link>
<joint name="imu_joint" type="fixed">
<parent link="trunk" />
<child link="imu_link" />
<origin rpy="0 0 0" xyz="0 0 0" />
</joint>
<link name="imu_link">
<!-- <inertial>
<mass value="0.001" />
<origin rpy="0 0 0" xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size="0.001 0.001 0.001" />
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0" />
<geometry>
<box size=".001 .001 .001" />
</geometry>
</collision> -->
</link>
<xacro:leg name="FR" mirror="-1" mirror_dae="False" front_hind="1" front_hind_dae="True">
<origin rpy="0 0 0" xyz="${abad_offset_x} ${-abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="FL" mirror="1" mirror_dae="True" front_hind="1" front_hind_dae="True">
<origin rpy="0 0 0" xyz="${abad_offset_x} ${abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="RR" mirror="-1" mirror_dae="False" front_hind="-1" front_hind_dae="False">
<origin rpy="0 0 0" xyz="${-abad_offset_x} ${-abad_offset_y} 0" />
</xacro:leg>
<xacro:leg name="RL" mirror="1" mirror_dae="True" front_hind="-1" front_hind_dae="False">
<origin rpy="0 0 0" xyz="${-abad_offset_x} ${abad_offset_y} 0" />
</xacro:leg>
</robot>

View File

@ -0,0 +1,41 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="leg_transmission" params="name">
<transmission name="${name}_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${abadGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${name}_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${hipGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${name}_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${name}_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${name}_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>"${kneeGearRatio}"</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
</robot>

View File

@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 2.8.3)
project(cyberdog_old_description)
find_package(catkin REQUIRED COMPONENTS
genmsg
roscpp
std_msgs
tf
)
catkin_package(
CATKIN_DEPENDS
)
include_directories(
# include
${Boost_INCLUDE_DIR}
${catkin_INCLUDE_DIRS}
)

View File

@ -0,0 +1,70 @@
cyberdog_gazebo:
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 1000
# FL Controllers ---------------------------------------
FL_hip_controller:
type: unitree_legged_control/UnitreeJointController
joint: FL_hip_joint
pid: {p: 100.0, i: 0.0, d: 5.0}
FL_thigh_controller:
type: unitree_legged_control/UnitreeJointController
joint: FL_thigh_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
FL_calf_controller:
type: unitree_legged_control/UnitreeJointController
joint: FL_calf_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
# FR Controllers ---------------------------------------
FR_hip_controller:
type: unitree_legged_control/UnitreeJointController
joint: FR_hip_joint
pid: {p: 100.0, i: 0.0, d: 5.0}
FR_thigh_controller:
type: unitree_legged_control/UnitreeJointController
joint: FR_thigh_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
FR_calf_controller:
type: unitree_legged_control/UnitreeJointController
joint: FR_calf_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
# RL Controllers ---------------------------------------
RL_hip_controller:
type: unitree_legged_control/UnitreeJointController
joint: RL_hip_joint
pid: {p: 100.0, i: 0.0, d: 5.0}
RL_thigh_controller:
type: unitree_legged_control/UnitreeJointController
joint: RL_thigh_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
RL_calf_controller:
type: unitree_legged_control/UnitreeJointController
joint: RL_calf_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
# RR Controllers ---------------------------------------
RR_hip_controller:
type: unitree_legged_control/UnitreeJointController
joint: RR_hip_joint
pid: {p: 100.0, i: 0.0, d: 5.0}
RR_thigh_controller:
type: unitree_legged_control/UnitreeJointController
joint: RR_thigh_joint
pid: {p: 300.0, i: 0.0, d: 8.0}
RR_calf_controller:
type: unitree_legged_control/UnitreeJointController
joint: RR_calf_joint
pid: {p: 300.0, i: 0.0, d: 8.0}

View File

@ -0,0 +1,22 @@
<launch>
<param name="robot_description" textfile="$(find cyberdog_old_description)/urdf/cyberdog_old_description.urdf"/>
<!-- send fake joint values -->
<!-- <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher">
<param name="use_gui" value="TRUE"/>
</node> -->
<node
name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
type="joint_state_publisher_gui" />
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
<param name="publish_frequency" type="double" value="1000.0"/>
</node>
<node pkg="rviz" type="rviz" name="rviz" respawn="false" output="screen"
args="-d $(find cyberdog_old_description)/launch/test.rviz"/>
</launch>

View File

@ -0,0 +1,19 @@
<launch>
<include file="$(find gazebo_ros)/launch/empty_world.launch" />
<node
name="tf_footprint_base"
pkg="tf"
type="static_transform_publisher"
args="0 0 0 0 0 0 base_link base_footprint 40" />
<node
name="spawn_model"
pkg="gazebo_ros"
type="spawn_model"
args="-file $(find cyberdog_description)/urdf/cyberdog_old_description.urdf -urdf -model cyberdog_old_description -z 0.6 -unpause"
output="screen" />
<node
name="fake_joint_calibration"
pkg="rostopic"
type="rostopic"
args="pub /calibrated std_msgs/Bool true" />
</launch>

View File

@ -0,0 +1,245 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
Splitter Ratio: 0.5
Tree Height: 555
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Name: Time
SyncMode: 0
SyncSource: ""
Preferences:
PromptSaveOnExit: true
Toolbars:
toolButtonStyle: 2
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz/RobotModel
Collision Enabled: false
Enabled: true
Links:
All Links Enabled: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
FL_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FL_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
FR_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Link Tree Style: Links in Alphabetic Order
RL_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RL_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_calf:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_foot:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_hip:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
RR_thigh:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
imu_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
trunk:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Name: RobotModel
Robot Description: robot_description
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
- Class: rviz/TF
Enabled: false
Frame Timeout: 15
Frames:
All Enabled: true
Marker Alpha: 1
Marker Scale: 1
Name: TF
Show Arrows: true
Show Axes: true
Show Names: true
Tree:
{}
Update Interval: 0
Value: false
Enabled: true
Global Options:
Background Color: 48; 48; 48
Default Light: true
Fixed Frame: trunk
Frame Rate: 30
Name: root
Tools:
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/MoveCamera
- Class: rviz/Select
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
Single click: true
Topic: /clicked_point
Value: true
Views:
Current:
Class: rviz/Orbit
Distance: 2.3364639282226562
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.16539815068244934
Target Frame: <Fixed Frame>
Yaw: 1.430397391319275
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 846
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd000000040000000000000156000002b4fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000002b4000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b4fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b000002b4000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000030700fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002b400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1200
X: 739
Y: -14

View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<package format="2">
<name>cyberdog_old_description</name>
<version>1.0.0</version>
<description>The cyberdog_old_description package</description>
<author>TODO</author>
<maintainer email="TODO@email.com" />
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
<depend>roscpp</depend>
<depend>std_msgs</depend>
<depend>roslaunch</depend>
<depend>robot_state_publisher</depend>
<depend>rviz</depend>
<depend>joint_state_publisher_gui</depend>
<depend>gazebo</depend>
</package>

View File

@ -0,0 +1,933 @@
<?xml version="1.0" encoding="utf-8"?>
<robot name="cyberdog_old_description">
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
<material name="silver">
<color rgba="0.913725490196 0.913725490196 0.847058823529 1.0"/>
</material>
<material name="orange">
<!-- <color rgba="1.0 0.423529411765 0.0392156862745 1.0"/> -->
<color rgba="0.12 0.15 0.2 1.0"/>
</material>
<material name="brown">
<color rgba="0.870588235294 0.811764705882 0.764705882353 1.0"/>
</material>
<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<!-- ros_control plugin -->
<gazebo>
<plugin filename="libgazebo_ros_control.so" name="gazebo_ros_control">
<robotNamespace>/cyberdog_gazebo</robotNamespace>
<robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
</plugin>
</gazebo>
<!-- Show the trajectory of body center. -->
<gazebo>
<plugin filename="libLinkPlot3DPlugin.so" name="3dplotbody">
<frequency>10</frequency>
<plot>
<link>base</link>
<pose>0 0 0 0 0 0</pose>
<material>Gazebo/Yellow</material>
</plot>
</plugin>
</gazebo>
<!-- Show the trajectory of foot. You can add another trajectory about another foot. -->
<gazebo>
<plugin filename="libLinkPlot3DPlugin.so" name="3dplot">
<frequency>1000</frequency>
<plot>
<link>FR_calf</link>
<pose>0 0 -0.217 0 0 0</pose>
<material>Gazebo/Yellow</material>
</plot>
</plugin>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_force.so" name="gazebo_ros_force">
<bodyName>trunk</bodyName>
<topicName>/apply_force/trunk</topicName>
</plugin>
</gazebo>
<gazebo reference="imu_link">
<gravity>true</gravity>
<sensor name="imu_sensor" type="imu">
<always_on>true</always_on>
<update_rate>1000</update_rate>
<visualize>true</visualize>
<topic>__default_topic__</topic>
<plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">
<topicName>trunk_imu</topicName>
<bodyName>imu_link</bodyName>
<updateRateHZ>1000.0</updateRateHZ>
<gaussianNoise>0.0</gaussianNoise>
<xyzOffset>0 0 0</xyzOffset>
<rpyOffset>0 0 0</rpyOffset>
<frameName>imu_link</frameName>
</plugin>
<pose>0 0 0 0 0 0</pose>
</sensor>
</gazebo>
<!-- Foot contacts. -->
<gazebo reference="FR_calf">
<sensor name="FR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin filename="libunitreeFootContactPlugin.so" name="contactPlugin"/>
<contact>
<collision>FR_calf_fixed_joint_lump__FR_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="FL_calf">
<sensor name="FL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin filename="libunitreeFootContactPlugin.so" name="contactPlugin"/>
<contact>
<collision>FL_calf_fixed_joint_lump__FL_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RR_calf">
<sensor name="RR_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin filename="libunitreeFootContactPlugin.so" name="contactPlugin"/>
<contact>
<collision>RR_calf_fixed_joint_lump__RR_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<gazebo reference="RL_calf">
<sensor name="RL_foot_contact" type="contact">
<update_rate>100</update_rate>
<plugin filename="libunitreeFootContactPlugin.so" name="contactPlugin"/>
<contact>
<collision>RL_calf_fixed_joint_lump__RL_foot_collision_1</collision>
</contact>
</sensor>
</gazebo>
<!-- Visualization of Foot contacts. -->
<gazebo reference="FR_foot">
<visual>
<plugin filename="libunitreeDrawForcePlugin.so" name="drawForcePlugin">
<topicName>FR_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="FL_foot">
<visual>
<plugin filename="libunitreeDrawForcePlugin.so" name="drawForcePlugin">
<topicName>FL_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="RR_foot">
<visual>
<plugin filename="libunitreeDrawForcePlugin.so" name="drawForcePlugin">
<topicName>RR_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="RL_foot">
<visual>
<plugin filename="libunitreeDrawForcePlugin.so" name="drawForcePlugin">
<topicName>RL_foot_contact</topicName>
</plugin>
</visual>
</gazebo>
<gazebo reference="base">
<material>Gazebo/Green</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<gazebo reference="trunk">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="imu_link">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/Red</material>
</gazebo>
<!-- FR leg -->
<gazebo reference="FR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FR_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="FR_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FR_foot">
<mu1>0.9</mu1>
<mu2>0.9</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- FL leg -->
<gazebo reference="FL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="FL_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="FL_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="FL_foot">
<mu1>0.9</mu1>
<mu2>0.9</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- RR leg -->
<gazebo reference="RR_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RR_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="RR_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="RR_foot">
<mu1>0.9</mu1>
<mu2>0.9</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- RL leg -->
<gazebo reference="RL_hip">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<material>Gazebo/DarkGrey</material>
</gazebo>
<gazebo reference="RL_thigh">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<gazebo reference="RL_calf">
<mu1>0.2</mu1>
<mu2>0.2</mu2>
<self_collide>1</self_collide>
</gazebo>
<gazebo reference="RL_foot">
<mu1>0.9</mu1>
<mu2>0.9</mu2>
<self_collide>1</self_collide>
<material>Gazebo/DarkGrey</material>
<kp value="1000000.0"/>
<kd value="1.0"/>
</gazebo>
<!-- 悬挂 -->
<!-- <link name="world"/>
<joint name="base_static_joint" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="world"/>
<child link="base"/>
</joint> -->
<link name="base">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</visual>
</link>
<joint name="floating_base" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base"/>
<child link="trunk"/>
</joint>
<link name="trunk">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/trunk.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/trunk.STL"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value="8.78"/>
<inertia ixx="0.032051" ixy="-0.00023217" ixz="0.002728" iyy="0.13707" iyz="5.6623E-05" izz="0.14946"/>
</inertial>
</link>
<joint name="imu_joint" type="fixed">
<parent link="trunk"/>
<child link="imu_link"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
</joint>
<link name="imu_link">
<inertial>
<mass value="0.001"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
<material name="red"/>
</visual>
<!-- <collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size=".001 .001 .001"/>
</geometry>
</collision> -->
</link>
<joint name="FR_hip_joint" type="revolute">
<origin xyz="0.23536 -0.05 0" rpy="0 0 0"/>
<parent link="trunk"/>
<child link="FR_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit effort="17" lower="-0.75" upper="0.75" velocity="12"/>
</joint>
<link name="FR_hip">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip_mirror.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip_mirror.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 -0.053575 0" rpy="0 0 0"/>
<mass value="0.509"/>
<inertia ixx="0.00038097" ixy="1.2523E-05" ixz="-1.1653E-05" iyy="0.00069383" iyz="5.071E-06" izz="0.00047336"/>
</inertial>
</link>
<joint name="FR_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.10 0"/>
<parent link="FR_hip"/>
<child link="FR_thigh_shoulder"/>
</joint>
<link name="FR_thigh_shoulder">
</link>
<joint name="FR_thigh_joint" type="revolute">
<origin xyz="0 -0.10715 0" rpy="0 0 0"/>
<parent link="FR_hip"/>
<child link="FR_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-1.257" upper="4.363" effort="24" velocity="12"/>
</joint>
<link name="FR_thigh">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.1" rpy="0 0 0"/>
<mass value="0.664"/>
<inertia ixx="0.0033376" ixy="-7.1504E-07" ixz="-0.00019282" iyy="0.0026385" iyz="-9.3033E-06" izz="0.0013093"/>
</inertial>
</link>
<joint name="FR_calf_joint" type="revolute">
<origin xyz="0 0 -0.2" rpy="0 0 0"/>
<parent link="FR_thigh"/>
<child link="FR_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.478" upper="-0.506" effort="24" velocity="12"/>
</joint>
<link name="FR_calf">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.11439" rpy="0 0 0"/>
<mass value="0.114"/>
<inertia ixx="0.0014553" ixy="-3.2376E-08" ixz="8.3885E-05" iyy="0.0021522" iyz="5.1259E-07" izz="0.00070545"/>
</inertial>
</link>
<joint name="FR_foot_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.217"/>
<parent link="FR_calf"/>
<child link="FR_foot"/>
</joint>
<link name="FR_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
</collision>
<inertial>
<mass value="0.026"/>
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0"/>
</inertial>
</link>
<transmission name="FR_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FR_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FR_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="FR_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FR_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FR_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="FR_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FR_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FR_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<joint name="FL_hip_joint" type="revolute">
<origin xyz="0.23536 0.05 0" rpy="0 0 0"/>
<parent link="trunk"/>
<child link="FL_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-0.75" upper="0.75" effort="17" velocity="12"/>
</joint>
<link name="FL_hip">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0.053575 0" rpy="0 0 0"/>
<mass value="0.509"/>
<inertia ixx="0.00038097" ixy="1.2523E-05" ixz="-1.1653E-05" iyy="0.00069383" iyz="5.071E-06" izz="0.00047336"/>
</inertial>
</link>
<joint name="FL_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0.10 0"/>
<parent link="FL_hip"/>
<child link="FL_thigh_shoulder"/>
</joint>
<link name="FL_thigh_shoulder">
</link>
<joint name="FL_thigh_joint" type="revolute">
<origin xyz="0 0.10715 0" rpy="0 0 0"/>
<parent link="FL_hip"/>
<child link="FL_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-1.257" upper="4.363" effort="24" velocity="12"/>
</joint>
<link name="FL_thigh">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.1" rpy="0 0 0"/>
<mass value="0.664"/>
<inertia ixx="0.0033376" ixy="-7.150375E-07" ixz="-0.00019282" iyy="0.0026385" iyz="-9.3033E-06" izz="0.0013093"/>
</inertial>
</link>
<joint name="FL_calf_joint" type="revolute">
<origin xyz="0 0 -0.2" rpy="0 0 0"/>
<parent link="FL_thigh"/>
<child link="FL_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.478" upper="-0.506" effort="24" velocity="12"/>
</joint>
<link name="FL_calf">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.11439" rpy="0 0 0"/>
<mass value="0.114"/>
<inertia ixx="0.0014553" ixy="-3.2376E-08" ixz="8.3885E-05" iyy="0.0021522" iyz="5.1259E-07" izz="0.00070545"/>
</inertial>
</link>
<joint name="FL_foot_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.217"/>
<parent link="FL_calf"/>
<child link="FL_foot"/>
</joint>
<link name="FL_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
</collision>
<inertial>
<mass value="0.026"/>
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0"/>
</inertial>
</link>
<transmission name="FL_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FL_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FL_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="FL_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FL_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FL_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="FL_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="FL_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="FL_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<joint name="RR_hip_joint" type="revolute">
<origin xyz="-0.23536 -0.05 0" rpy="0 0 0"/>
<parent link="trunk"/>
<child link="RR_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-0.75" upper="0.75" effort="17" velocity="12"/>
</joint>
<link name="RR_hip">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip_mirror.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip_mirror.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 -0.053575 0" rpy="0 0 0"/>
<mass value="0.509"/>
<inertia ixx="0.00038097" ixy="1.2523E-05" ixz="-1.1653E-05" iyy="0.00069383" iyz="5.071E-06" izz="0.00047336"/>
</inertial>
</link>
<joint name="RR_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 -0.10 0"/>
<parent link="RR_hip"/>
<child link="RR_thigh_shoulder"/>
</joint>
<link name="RR_thigh_shoulder">
</link>
<joint name="RR_thigh_joint" type="revolute">
<origin xyz="0 -0.10715 0" rpy="0 0 0"/>
<parent link="RR_hip"/>
<child link="RR_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.01" upper="3.49" effort="24" velocity="12"/>
</joint>
<link name="RR_thigh">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.1" rpy="0 0 0"/>
<mass value="0.664"/>
<inertia ixx="0.0033376" ixy="-7.150375E-07" ixz="-0.00019282" iyy="0.0026385" iyz="-9.3033E-06" izz="0.0013093"/>
</inertial>
</link>
<joint name="RR_calf_joint" type="revolute">
<origin xyz="0 0 -0.2" rpy="0 0 0"/>
<parent link="RR_thigh"/>
<child link="RR_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.478" upper="-0.506" effort="24" velocity="12"/>
</joint>
<link name="RR_calf">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.11439" rpy="0 0 0"/>
<mass value="0.114"/>
<inertia ixx="0.0014553" ixy="-3.2376E-08" ixz="8.3885E-05" iyy="0.0021522" iyz="5.1259E-07" izz="0.00070545"/>
</inertial>
</link>
<joint name="RR_foot_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.217"/>
<parent link="RR_calf"/>
<child link="RR_foot"/>
</joint>
<link name="RR_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
</collision>
<inertial>
<mass value="0.026"/>
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0"/>
</inertial>
</link>
<transmission name="BR_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RR_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BR_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="BR_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RR_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BR_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="BR_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RR_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BR_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<joint name="RL_hip_joint" type="revolute">
<origin xyz="-0.23536 0.05 0" rpy="0 0 0"/>
<parent link="trunk"/>
<child link="RL_hip"/>
<axis xyz="1 0 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-0.75" upper="0.75" effort="17" velocity="12"/>
</joint>
<link name="RL_hip">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/hip.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0.053575 0" rpy="0 0 0"/>
<mass value="0.509"/>
<inertia ixx="0.00038097" ixy="1.2523E-05" ixz="-1.1653E-05" iyy="0.00069383" iyz="5.071E-06" izz="0.00047336"/>
</inertial>
</link>
<joint name="RL_hip_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0.10 0"/>
<parent link="RL_hip"/>
<child link="RL_thigh_shoulder"/>
</joint>
<link name="RL_thigh_shoulder">
</link>
<joint name="RL_thigh_joint" type="revolute">
<origin xyz="0 0.10715 0" rpy="0 0 0"/>
<parent link="RL_hip"/>
<child link="RL_thigh"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.01" upper="3.49" effort="24" velocity="12"/>
</joint>
<link name="RL_thigh">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/thigh.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.1" rpy="0 0 0"/>
<mass value="0.664"/>
<inertia ixx="0.0033376" ixy="-7.1504E-07" ixz="-0.00019282" iyy="0.0026385" iyz="-9.3033E-06" izz="0.0013093"/>
</inertial>
</link>
<joint name="RL_calf_joint" type="revolute">
<origin xyz="0 0 -0.2" rpy="0 0 0"/>
<parent link="RL_thigh"/>
<child link="RL_calf"/>
<axis xyz="0 1 0"/>
<dynamics damping="0" friction="0"/>
<limit lower="-2.478" upper="-0.506" effort="24" velocity="12"/>
</joint>
<link name="RL_calf">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://cyberdog_description/meshes/calf.STL"/>
</geometry>
</collision>
<inertial>
<origin xyz="0 0 -0.11439" rpy="0 0 0"/>
<mass value="0.114"/>
<inertia ixx="0.0014553" ixy="-3.2376E-08" ixz="8.3885E-05" iyy="0.0021522" iyz="5.1259E-07" izz="0.00070545"/>
</inertial>
</link>
<joint name="RL_foot_fixed" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.217"/>
<parent link="RL_calf"/>
<child link="RL_foot"/>
</joint>
<link name="RL_foot">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.025"/>
</geometry>
</collision>
<inertial>
<mass value="0.026"/>
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0"/>
</inertial>
</link>
<transmission name="BL_hip_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RL_hip_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BL_hip_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="BL_thigh_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RL_thigh_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BL_thigh_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="BL_calf_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="RL_calf_joint">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="BL_calf_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
</robot>