i think that you used joint_cmd_pb2 that control joints not links
https://github.com/jpieper/pygazebo/b...
i foubd that he have another file for links :
https://github.com/jpieper/pygazebo/b...
i think that you can use it and i saw that it use :
linear_velocity , angular_velocity
at lines no. 82 , 83 :
_LINKDATA.fields_by_name['linear_velocity'].message_type = vector3d_pb2._VECTOR3D
_LINKDATA.fields_by_name['angular_velocity'].message_type = vector3d_pb2._VECTOR3D
There is a nice example can hep you to understand the joints and move it by the keyboard ;)
I am working on a task to move a link by the keyboard and i found that this example is helpfull .
if you like to tryit
1-it is the world file that have the map of the keys that you can test :
https://bitbucket.org/osrf/gazebo/src...
2-you will need this files too
KeyboardGUIPlugin.cc , KeyboardGUIPlugin.hh , KeysToJointsPlugin.cc , KeysToJointsPlugin.hh
download it from :
https://bitbucket.org/osrf/gazebo/src... https://bitbucket.org/osrf/gazebo/src... https://bitbucket.org/osrf/gazebo/src... https://bitbucket.org/osrf/gazebo/src...
The documentation of those files.
http://osrf-distributions.s3.amazonaw... http://osrf-distributions.s3.amazonaw...
3- last 2 things , you need to write the CMakeLists.txt as :
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
find_package (Qt5Core REQUIRED)
find_package (Qt5Widgets REQUIRED)
set (CMAKE_AUTOMOC ON)
find_package(gazebo REQUIRED)
include_directories(${GAZEBO_INCLUDE_DIRS})
link_directories(${GAZEBO_LIBRARY_DIRS})
list(APPEND CMAKE_CXX_FLAGS "${GAZEBO_CXX_FLAGS}")
add_library(KeyboardGUIPlugin MODULE KeyboardGUIPlugin.cc)
target_link_libraries(KeyboardGUIPlugina ${GAZEBO_LIBRARIES} Qt5::Core)
add_library(KeysToJointsPlugin MODULE KeysToJointsPlugin.cc)
target_link_libraries(KeysToJointsPlugina ${GAZEBO_LIBRARIES} Qt5::Core)
4-Then :
mkdir build
cd build
cmake ../
make
export GAZEBO_PLUGIN_PATH=pwd
:$GAZEBO_PLUGIN_PATH
gazebo -u --verbose ../simple_arm_teleop.world
press 6,h,y,u,j,i,k and see ;)
i found that KeysToJointsPlugin use JointController.hh
so i try o make another one to the links but i am still looking for another classes that can do it from gazebo like Model Class or Link Calss part of <physics physics.hh="">
http://osrf-distributions.s3.amazonaw... http://osrf-distributions.s3.amazonaw...
that have usefull funcations as :
void SetAngularAccel (const ignition::math::Vector3d &_vel) GAZEBO_DEPRECATED(9.0)
Set the angular acceleration of the model, and all its links. More...
void SetAngularVel (const ignition::math::Vector3d &_vel)
Set the angular velocity of the model, and all its links. More...
void SetAnimation (const common::PoseAnimationPtr &_anim, boost::function< void()> _onComplete)
Set an animation for this entity. More...
void SetAnimation (common::PoseAnimationPtr _anim)
Set an animation for this entity. More...
i hope that my answer was usefull .