kinovarobotics / ros_kortex Goto Github PK
View Code? Open in Web Editor NEWROS packages for KINOVA® KORTEX™ robotic arms
License: Other
ROS packages for KINOVA® KORTEX™ robotic arms
License: Other
Upon opening the gen3 arm in rviz:
The STL file 'package://kortex_description/meshes/EndEffector_Link.STL' is malformed.
It appears to be a binary STL file but does not contain enough data for the
80 byte header and 32-bit integer triangle count.
and
Could not load model 'package://kortex_description/meshes/EndEffector_Link.STL' for link
'EndEffector_Link': OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource
package://kortex_description/meshes/EndEffector_Link.STL in resource group Autodetect or
any other group. in ResourceGroupManager::openResource at /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 756)
Cheers,
Ashis
We are trying to teleoperate the Kinova Gen3 robot with a motion capture system. We have tried sending target poses but the resulting motion is very jerky.
What would be the best way to achieve continuous and smooth Cartesian position control?
Hello !
I got an error trying to use the install verb for catkin_make :
catkin_make install
I got an error for some packages :
For kortex_control :
CMake Error at ros_kortex/kortex_control/cmake_install.cmake:51 (file):
file INSTALL cannot find
"/home/roso/Workspaces/kortex/src/ros_kortex/kortex_control/config".
Call Stack (most recent call first):
cmake_install.cmake:130 (include)
In the CmakeLists, the line :
foreach(dir config launch meshes urdf)
could be :
foreach(dir arms grippers)
(at least, I have no error with the new line and the package install correctly)
for kortex_description :
CMake Error at ros_kortex/kortex_description/cmake_install.cmake:51 (file):
file INSTALL cannot find
"/home/roso/Workspaces/kortex/src/ros_kortex/kortex_description/config".
Call Stack (most recent call first):
cmake_install.cmake:131 (include)
the line :
foreach(dir config launch meshes urdf)
could be :
foreach(dir arms grippers robots)
for kortex_gazebo :
CMake Error at ros_kortex/kortex_gazebo/cmake_install.cmake:51 (file):
file INSTALL cannot find
"/home/roso/Workspaces/kortex/src/ros_kortex/kortex_gazebo/config".
Call Stack (most recent call first):
cmake_install.cmake:132 (include)
the line :
foreach(dir config launch meshes urdf)
could be :
foreach(dir launch)
and also, you could add a install for the home_robot.py :
catkin_install_python(PROGRAMS scripts/home_robot.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
for kortex_example :
error: package directory 'python/kortex_examples' does not exist
CMake Error at ros_kortex/kortex_examples/catkin_generated/safe_execute_install.cmake:4 (message):
execute_process(/home/roso/Workspaces/kortex/build/ros_kortex/kortex_examples/catkin_generated/python_distutils_install.sh)
returned error code
Call Stack (most recent call first):
ros_kortex/kortex_examples/cmake_install.cmake:51 (include)
cmake_install.cmake:134 (include)
and I have no fix for this, I just removed this package since I don't need it but the catkin_make install doesn't work with this one
As the title says, after launching the kortex driver (rel 2.0.0) with
roslaunch kortex_driver kortex_driver.launch ip_address:=1xx.yyy.zzz.tt gripper:="robotiq_2f_85"
the output returns the following error:
[ERROR] [1565733224.731845080]: Exception while loading planning adapter plugin 'industrial_trajectory_filters/UniformSampleFilter': According to the loaded plugin descriptions the class industrial_trajectory_filters/UniformSampleFilter with base class type planning_request_adapter::PlanningRequestAdapter does not exist. Declared types are default_planner_request_adapters/AddIterativeSplineParameterization default_planner_request_adapters/AddTimeParameterization default_planner_request_adapters/Empty default_planner_request_adapters/FixStartStateBounds default_planner_request_adapters/FixStartStateCollision default_planner_request_adapters/FixStartStatePathConstraints default_planner_request_adapters/FixWorkspaceBounds
any advice?
Although this was mentioned in #27, I would like to keep this issue opened.
At this moment, we cannot control trajectory of Gen3, which is a lack of fundamental feature of robots. Everyone should be able to know this fact before buying the robot. So, I would like to keep this open.
When setting the orientation of the end-effector (theta-x, theta-y, theta-z), my assumption was that these values are setting the (ya, pitch, roll) relative to the end-effector reference frame. However, that's not what I'm seeing when actually setting those values via ROS. For instance, change theta-z seems to always rotates around the base-frame z-axis regardless of the end-effector orientation, but setting theta-x seems to rotate around the end-effector's x-axis.
It's unclear if this is a bug, or if I'm just confused about how to use the (theta-x, theta-y, theta-z) values.
I want to do low level control. but I can't find any services in the source code of the kortex_driver package. So is that available by default? If it is not generated in the provided code, is there any tutorial or example to state it more clear and in detail?
Dear colleagues,
the following topic does not seem to be working
/my_gen3/robotiq_2f_85_gripper_controller/gripper_cmd/feedback
is it just my problem or is it not implemented yet?
To get the gripper feedback I am currently using the BaseCyclic_Feedback, but I am not sure if that's the best solution.
Thank you in advance and have a nice day
Pavel
Hi all,
I have kinova gen3 with a robotiq 2f-85 gripper. I looked into the examples, more specificaly example_full_arm_movement.cpp and I used the example_send_gripper_command method to control the gripper.
The GripperCommand class has a member called mode and I understand that setting this to 1 or to kortex_driver::GripperMode::GRIPPER_FORCE should enable the force mode.
So when modifing the example as
service_send_gripper_command.request.input.mode = kortex_driver::GripperMode::GRIPPER_FORCE;
I should be able to do the force control of the gripper
and the member value of the class Finger should hold the force value right?
the code section in question goes like this:
`
// Initialize the ServiceClient
ros::ServiceClient service_client_send_gripper_command = n.serviceClient<kortex_driver::SendGripperCommand>("/" + robot_name + "/base/send_gripper_command");
kortex_driver::SendGripperCommand service_send_gripper_command;
// Initialize the request
kortex_driver::Finger finger;
finger.finger_identifier = 0;
finger.value = value;
service_send_gripper_command.request.input.gripper.finger.push_back(finger);
service_send_gripper_command.request.input.mode = kortex_driver::GripperMode::GRIPPER_FORCE;
//and we send it as
service_client_send_gripper_command.call(service_send_gripper_command);
`
However it does not work. I used different values and I tried lookig through the api but it does not help. Other two modes GRIPPER_POSITION and GRIPPER_SPEED works well.
I am gratefull for any advice, thanks in advance
Pavel
Hi all,
I have kinova gen3, and I want to control it using ROS through joint torque command, however I did not see any examples. I have tried example_full_arm_movement.cpp, and realized joint position and velocity controls. Did anyone know how to do joint torque control?
Thanks a lot.
Hongjun
#13 (kinetic-devel) rotated the frame for the end-effector link (see pictures). I didn't see this being referenced in the PR, so I'm assuming this happened by mistake.
old: urdf/JACO3_URDF_V11.urdf
:
Happy to open a PR to fix if this is a bug, not a feature.
Hi,
I'm using release 2.0.0 on ubuntu 16.04 and ros-kinetic.
I'm connecting to Gen3 with ether-net cable and set up the ip address and netmask according to the quick start guide.
However when I tried to do roslaunch kortex_driver kortex_driver.launch start_rviz:=false start_moveit:=false ip_address:=192.168.1.11
I got an error message as follows:
jc@jc-Precision-5510:~$ roslaunch kortex_driver kortex_driver.launch start_rviz:=false start_moveit:=false ip_address:=192.168.1.11
... logging to /home/jc/.ros/log/7725a7b6-c37e-11e9-8537-a434d9e04d1d/roslaunch-jc-Precision-5510-14874.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://jc-Precision-5510:42769/
SUMMARY
========
PARAMETERS
* /my_gen3/joint_state_publisher/source_list: ['base_feedback/j...
* /my_gen3/my_gen3_driver/api_connection_inactivity_timeout_ms: 20000
* /my_gen3/my_gen3_driver/api_rpc_timeout_ms: 2000
* /my_gen3/my_gen3_driver/api_session_inactivity_timeout_ms: 35000
* /my_gen3/my_gen3_driver/arm: gen3
* /my_gen3/my_gen3_driver/cyclic_data_publish_rate: 100
* /my_gen3/my_gen3_driver/default_goal_time_tolerance: 0.5
* /my_gen3/my_gen3_driver/default_goal_tolerance: 0.5
* /my_gen3/my_gen3_driver/gripper:
* /my_gen3/my_gen3_driver/ip_address: 192.168.1.11
* /my_gen3/my_gen3_driver/joint_names: ['joint_1', 'join...
* /my_gen3/robot_description: <?xml version="1....
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
/my_gen3/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
my_gen3_driver (kortex_driver/kortex_arm_driver)
robot_state_publisher (robot_state_publisher/state_publisher)
auto-starting new master
process[master]: started with pid [14887]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 7725a7b6-c37e-11e9-8537-a434d9e04d1d
process[rosout-1]: started with pid [14900]
started core service [/rosout]
process[my_gen3/my_gen3_driver-2]: started with pid [14903]
process[my_gen3/joint_state_publisher-3]: started with pid [14909]
process[my_gen3/robot_state_publisher-4]: started with pid [14919]
There was a problem connecting to the server. Aborting
[ERROR] [1566328355.569615805]: The node could not connect to the arm. Did you specify the right IP address and is the arm powered on?
terminate called after throwing an instance of 'std::runtime_error'
what(): not connected !!!
[my_gen3/my_gen3_driver-2] process has died [pid 14903, exit code -6, cmd /home/jc/catkin_ws/devel/lib/kortex_driver/kortex_arm_driver __name:=my_gen3_driver __log:=/home/jc/.ros/log/7725a7b6-c37e-11e9-8537-a434d9e04d1d/my_gen3-my_gen3_driver-2.log].
log file: /home/jc/.ros/log/7725a7b6-c37e-11e9-8537-a434d9e04d1d/my_gen3-my_gen3_driver-2*.log
I tried the default ip address but the process just hang for a little longer and die with same error message show above. Any thoughts on this one? Thanks in advance.
Any tutorials on how to get gen3 arm to publish rgb and depth image through ROS? Thanks!
The urdf and meshes are located in the kortex_description
package. However, the urdf specifies for the meshes to be loaded from a JACO_URDF_V10
package.
Hi all,
I have kinova gen3 with a robotiq 2f-85 gripper. I looked into the examples, more specificaly example_full_arm_movement.cpp and I used the example_send_gripper_command method to control the gripper.
The GripperCommand class has a member called mode and I understand that setting this to 1 or to kortex_driver::GripperMode::GRIPPER_FORCE should enable the force mode.
So when modifing the example as
service_send_gripper_command.request.input.mode = kortex_driver::GripperMode::GRIPPER_FORCE;
I should be able to do the force control of the gripper
and the member value of the class Finger should hold the force value right?
the code section in question goes like this:
`
// Initialize the ServiceClient
ros::ServiceClient service_client_send_gripper_command = n.serviceClient<kortex_driver::SendGripperCommand>("/" + robot_name + "/base/send_gripper_command");
kortex_driver::SendGripperCommand service_send_gripper_command;
// Initialize the request
kortex_driver::Finger finger;
finger.finger_identifier = 0;
finger.value = value;
service_send_gripper_command.request.input.gripper.finger.push_back(finger);
service_send_gripper_command.request.input.mode = kortex_driver::GripperMode::GRIPPER_FORCE;
//and we send it as
service_client_send_gripper_command.call(service_send_gripper_command);
`
However it does not work. I used different values and I tried looking through the API but it does not help. Other two modes GRIPPER_POSITION and GRIPPER_SPEED works well.
I am grateful for any advice, thanks in advance
Pavel
Hello, Thank you for the code.I had an error when I ran the code. After I connect to real robot.
I frist run: roslaunch kortex_driver kortex_driver.launch
Then run: rosrun kortex_examples example_move_it_trajectories.py
An error occurred:
gang@gang-Legion:~$ rosrun kortex_examples example_move_it_trajectories.pyFailed to import pyassimp, see moveit/moveit#86 for more info
[ERROR] [1573439723.948360254]: Robot model parameter not found! Did you remap 'robot_description'?
Traceback (most recent call last):
File"/home/gang/catkin_ws/src/ros_kortex/kortex_examples/python/move_it/example_move_it_trajectories.py", line 205, in
main()
File"/home/gang/catkin_ws/src/ros_kortex/kortex_examples/python/move_it/example_move_it_trajectories.py", line 156, in main
example = ExampleMoveItTrajectories()
File"/home/gang/catkin_ws/src/ros_kortex/kortex_examples/python/move_it/example_move_it_trajectories.py", line 65, in init
self.robot = moveit_commander.RobotCommander("robot_description")
File "/opt/ros/kinetic/lib/python2.7/dist-packages/moveit_commander/robot.py", line 151, in init
self._r = _moveit_robot_interface.RobotInterface(robot_description, ns)
RuntimeError: RobotInterfacePython: invalid robot model
Did I do something wrong? Thank you for your advice!
Hello,
I git pull
the latest change PR 65 to test the new updates on the controller. I got the following errors:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp: In member function ‘bool BaseServices::UpdateMapping(kortex_driver::UpdateMapping::Request&, kortex_driver::UpdateMapping::Response&)’:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp:1098:11: error: ‘class Kinova::Api::Base::BaseClient’ has no member named ‘UpdateMapping’; did you mean ‘CreateMapping’?
m_base->UpdateMapping(input, m_current_device_id, m_api_options);
^~~~~~~~~~~~~
CreateMapping
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp: In member function ‘bool BaseServices::DeleteMapping(kortex_driver::DeleteMapping::Request&, kortex_driver::DeleteMapping::Response&)’:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp:1130:11: error: ‘class Kinova::Api::Base::BaseClient’ has no member named ‘DeleteMapping’; did you mean ‘CreateMapping’?
m_base->DeleteMapping(input, m_current_device_id, m_api_options);
^~~~~~~~~~~~~
CreateMapping
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp: In member function ‘bool BaseServices::ReadMap(kortex_driver::ReadMap::Request&, kortex_driver::ReadMap::Response&)’:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp:1232:20: error: ‘class Kinova::Api::Base::BaseClient’ has no member named ‘ReadMap’; did you mean ‘ReadMapping’?
output = m_base->ReadMap(input, m_current_device_id, m_api_options);
^~~~~~~
ReadMapping
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp: In member function ‘bool BaseServices::UpdateMap(kortex_driver::UpdateMap::Request&, kortex_driver::UpdateMap::Response&)’:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp:1265:11: error: ‘class Kinova::Api::Base::BaseClient’ has no member named ‘UpdateMap’; did you mean ‘CreateMap’?
m_base->UpdateMap(input, m_current_device_id, m_api_options);
^~~~~~~~~
CreateMap
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp: In member function ‘bool BaseServices::DeleteMap(kortex_driver::DeleteMap::Request&, kortex_driver::DeleteMap::Response&)’:
/home/truhoang/1-Project_Code/ubtech_ws/src/ros_kortex/kortex_driver/src/generated/base_services.cpp:1297:11: error: ‘class Kinova::Api::Base::BaseClient’ has no member named ‘DeleteMap’; did you mean ‘CreateMap’?
m_base->DeleteMap(input, m_current_device_id, m_api_options);
^~~~~~~~~
CreateMap
ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:230: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/base_services.cpp.o' failed
Since the package build successfully with the previous version, I suspect the error is not a result of anything from my end.
I would like to report an issue of trajectory control.
There are following services:
However both are not a trajectory control, but a point-to-point control.
In other words, they are not a way to generate a motion from multiple via-points.
In ROS, sometimes SimpleActionServer of actionlib is used to provide a trajectory control, which can be accessed through the /follow_joint_trajectory topic. It is commonly used, for example, in Universal Robots UR and Yaskawa Motoman.
In these robots, /follow_joint_trajectory provides a trajectory control that can traverse multiple via-points. Each via-point consists of time-from-start, joint angles, and joint angular velocities.
Note that executing PlayJointTrajectory and PlayCartesianTrajectory multiple times does not offer the same functionality, since the motion stops after each execution of PlayJointTrajectory and PlayCartesianTrajectory; i.e. the joint angular velocities at each via-point are zero.
Thus,
Hi:
I got errors:
[ERROR] [1567627554.028590077]: The gripper model specified in the launch file doesn't match the detected arm's gripper model, shutting down the node...
terminate called after throwing an instance of 'std::runtime_error*'
[my_gen3/my_gen3_driver-1] process has died [pid 26321, exit code -6, cmd /home/airlab/catkin_ws/devel/lib/kortex_driver/kortex_arm_driver __name:=my_gen3_driver __log:=/home/airlab/.ros/log/481ae8aa-cf4f-11e9-97c4-94c691adb6c2/my_gen3-my_gen3_driver-1.log].
log file: /home/airlab/.ros/log/481ae8aa-cf4f-11e9-97c4-94c691adb6c2/my_gen3-my_gen3_driver-1*.log
when I run command roslaunch kortex_driver kortex_driver.launch
Hello !
I tried compiling (with both catkin_make and catkin build) the ros_kortex in a workspace but i had the following error :
CMake Error at top-secret-project/ros_kortex/kortex_driver/CMakeLists.txt:14 (message):
Download of the Kortex API failed
After a quick search, it was because of this line in kortex_driver/CmakeLists.txt :
execute_process(COMMAND ./download_kortex_api.bash
WORKING_DIRECTORY ../src/ros_kortex/kortex_api/scripts
RESULT_VARIABLE DOWNLOAD_API_RESULT)
if(NOT DOWNLOAD_API_RESULT EQUAL 0)
message(FATAL_ERROR "Download of the Kortex API failed")
endif()
The ros_kortex "meta-package" is not at the same level as the top-level Cmakelists.txt of my package, so the path src/ros_kortex/kortex_api/scripts
is not valid, for me it's src/top-secret-project/ros_kortex/kortex_api/scripts/
.
Is it possible to change the Cmakelists to add a search condition for the package, to avoid this error (for me and other people using embedded directory) ? Something like this :
find_path (KORTEX_API_DOWNLOADER_PATH # Set this variable
download_kortex_api.bash # To the Working dir of this file
${CMAKE_CURRENT_SOURCE_DIR}/../kortex_api/scripts # Search this file here
../src/ros_kortex/kortex_api/scripts) # and here
if(KORTEX_API_DOWNLOADER_PATH)
execute_process(COMMAND ./download_kortex_api.bash
WORKING_DIRECTORY ${KORTEX_API_DOWNLOADER_PATH}
RESULT_VARIABLE DOWNLOAD_API_RESULT)
else()
message(FATAL_ERROR "Could not find download_kortex_api.bash in current workspace")
endif()
if(NOT DOWNLOAD_API_RESULT EQUAL 0)
message(FATAL_ERROR "Download of the Kortex API failed")
endif()
So find_package will search in the same directory as before (from src to the script) + the path from kortex_api to the script
The ros_kortex_vision repository contains the code to access the color and depth streams.
It will eventually be brought in the ros_kortex repository, but in the meantime to access the streams, you have to clone the ros_kortex_vision repo. You will find the installation instructions and examples in the repo.
I suppose that "Frame.pb.h" is a generated file by protobuf. It is missing during the catkin_make process in the catkin workspace. The log message will be posted at the end.
Firstly I followed the procedure to setup "kortex" repository which is can be achieved via the link: https://github.com/Kinovarobotics/kortex. Everything goes on well except I have to comment out "add_subdirectory(300-BaseGen3_low_level_bypass)" due to the missing of example folder.
Then I followed the instruction given in "README.md" to install protobuf. I checked out 3.5.1.1 on the web (https://github.com/protocolbuffers/protobuf/blob/master/src/README.md), then I finished the following steps without any problem:
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache
Lastly, I git cloned the ros-kortex into catkin workspace, and simply run catkin_make without any modification. Then the compile failed. I am wondering whether there is a bug or I missed some essential steps.
message after running catkin_make:
Base path: /home/longfei/catkin_ws
Source space: /home/longfei/catkin_ws/src
Build space: /home/longfei/catkin_ws/build
Devel space: /home/longfei/catkin_ws/devel
Install space: /home/longfei/catkin_ws/installRunning command: "cmake /home/longfei/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/longfei/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/longfei/catkin_ws/install -G Unix Makefiles" in "/home/longfei/catkin_ws/build"
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/longfei/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/longfei/catkin_ws/devel;/opt/ros/kinetic
-- This workspace overlays: /home/longfei/catkin_ws/devel;/opt/ros/kinetic
-- Found PythonInterp: /usr/bin/python (found version "2.7.12")
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/longfei/catkin_ws/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found gtest sources under '/usr/src/gmock': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.14
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 5 packages in topological order:
-- ~~ - kortex_actuator_driver
-- ~~ - kortex_device_manager
-- ~~ - kortex_driver
-- ~~ - kortex_vision_config_driver
-- ~~ - kortex_description
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'kortex_actuator_driver'
-- ==> add_subdirectory(ros_kortex/kortex_actuator_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- kortex_actuator_driver: 45 messages, 38 services
-- Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found suitable version "3.5.1", minimum required is "3.5.1")
-- +++ processing catkin package: 'kortex_device_manager'
-- ==> add_subdirectory(ros_kortex/kortex_device_manager)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- kortex_device_manager: 39 messages, 34 services
-- +++ processing catkin package: 'kortex_driver'
-- ==> add_subdirectory(ros_kortex/kortex_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- kortex_driver: 200 messages, 119 services
-- +++ processing catkin package: 'kortex_vision_config_driver'
-- ==> add_subdirectory(ros_kortex/kortex_vision_config_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- kortex_vision_config_driver: 33 messages, 10 services
-- +++ processing catkin package: 'kortex_description'
-- ==> add_subdirectory(ros_kortex/kortex_description)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/longfei/catkin_ws/buildRunning command: "make -j4 -l4" in "/home/longfei/catkin_ws/build"
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_Timestamp
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_GetSelectedCustomData
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_GetVectorDriveParameters
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_Servoing
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_Timestamp
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_GetVectorDriveParameters
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_GetSelectedCustomData
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_Servoing
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_NotificationType
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_EncoderDerivativeParameters
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_TorqueOffset
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_ControlLoopParameters
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_EncoderDerivativeParameters
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_NotificationType
[ 0%] Built target _kortex_actuator_driver_generate_messages_check_deps_ControlLoopParameters
Scanning dependencies of target _kortex_actuator_driver_generate_messages_check_deps_SetVectorDriveParameters
[... ... ... ... log exceeds the maximum limit of characters to show here, ... ... however, there is no error until now ... ... ... ... ]
[ 96%] Generating Python from MSG kortex_vision_config_driver/KortexError
[ 96%] Generating Python from MSG kortex_vision_config_driver/OptionIdentifier
[ 96%] Generating Python from MSG kortex_vision_config_driver/UserProfileHandle
[ 96%] Generating Python from MSG kortex_vision_config_driver/Permission
[ 96%] Generating Python from MSG kortex_vision_config_driver/BitRate
[ 96%] Generating Python from MSG kortex_vision_config_driver/SafetyHandle
[ 96%] Generating Python from MSG kortex_vision_config_driver/VisionNotification
[ 97%] Generating Python from MSG kortex_vision_config_driver/IntrinsicParameters
[ 97%] Generating Python from MSG kortex_vision_config_driver/NotificationType
[ 97%] Generating Python from MSG kortex_vision_config_driver/Unit
[ 97%] Generating Python from MSG kortex_vision_config_driver/SafetyNotification
[ 97%] Generating Python from MSG kortex_vision_config_driver/Option
[ 97%] Generating Python from MSG kortex_vision_config_driver/Timestamp
[ 97%] Generating Python from MSG kortex_vision_config_driver/SafetyStatusValue
[ 97%] Generating Python from MSG kortex_vision_config_driver/FocusAction
[ 97%] Generating Python from MSG kortex_vision_config_driver/Resolution
[ 97%] Generating Python from MSG kortex_vision_config_driver/Empty
[ 97%] Generating Python from MSG kortex_vision_config_driver/FrameRate
[ 97%] Generating Python from MSG kortex_vision_config_driver/SensorIdentifier
[ 97%] Generating Python from MSG kortex_vision_config_driver/NotificationHandle
[ 97%] Generating Python from MSG kortex_vision_config_driver/Connection
[ 97%] Generating Python from MSG kortex_vision_config_driver/OptionValue
[ 97%] Generating Python code from SRV kortex_vision_config_driver/GetIntrinsicParameters
[ 97%] Generating Python code from SRV kortex_vision_config_driver/SetSensorSettings
[ 97%] Generating Python code from SRV kortex_vision_config_driver/VisionTopic
[ 97%] Generating Python code from SRV kortex_vision_config_driver/GetOptionValue
Scanning dependencies of target kortex_actuator_driver_generate_messages
[ 97%] Built target kortex_actuator_driver_generate_messages
[ 97%] Generating Python code from SRV kortex_vision_config_driver/SetDeviceID
Scanning dependencies of target kortex_actuator_driver_gencpp
[ 97%] Built target kortex_actuator_driver_gencpp
Scanning dependencies of target kortex_vision_config_driver_generate_messages_lisp
[ 97%] Generating Lisp code from kortex_vision_config_driver/NotificationOptions.msg
[ 97%] Generating Lisp code from kortex_vision_config_driver/SensorFocusAction.msg
[ 97%] Generating Python code from SRV kortex_vision_config_driver/SetOptionValue
[ 97%] Generating Lisp code from kortex_vision_config_driver/Sensor.msg
[ 97%] Generating Lisp code from kortex_vision_config_driver/SensorSettings.msg
[ 97%] Generating Python code from SRV kortex_vision_config_driver/GetSensorSettings
[ 97%] Generating Lisp code from kortex_vision_config_driver/ApiOptions.msg
[ 97%] Generating Python code from SRV kortex_vision_config_driver/GetOptionInformation
[ 97%] Generating Lisp code from kortex_vision_config_driver/ArmState.msg
[ 97%] Generating Lisp code from kortex_vision_config_driver/OptionInformation.msg
[ 97%] Generating Lisp code from kortex_vision_config_driver/VisionEvent.msg
Scanning dependencies of target kortex_device_manager_generate_messages
[ 97%] Built target kortex_device_manager_generate_messages
[ 97%] Generating Python code from SRV kortex_vision_config_driver/DoSensorFocusAction
Scanning dependencies of target kortex_device_manager_gencpp
[ 97%] Built target kortex_device_manager_gencpp
Scanning dependencies of target kortex_driver_gencpp
[ 97%] Generating Lisp code from kortex_vision_config_driver/DeviceTypes.msg
[ 97%] Built target kortex_driver_gencpp
[ 97%] Generating Lisp code from kortex_vision_config_driver/DeviceHandle.msg
[ 97%] Generating Python code from SRV kortex_vision_config_driver/SetApiOptions
[ 97%] Generating Lisp code from kortex_vision_config_driver/ServiceVersion.msg
Scanning dependencies of target kortex_driver_generate_messages
[ 97%] Built target kortex_driver_generate_messages
Scanning dependencies of target kortex_vision_config_driver_gencpp
[ 97%] Built target kortex_vision_config_driver_gencpp
Scanning dependencies of target kortex_actuator_driver
[ 97%] Generating Lisp code from kortex_vision_config_driver/KortexError.msg
[ 97%] Generating Python msg init.py for kortex_vision_config_driver
[ 97%] Generating Lisp code from kortex_vision_config_driver/OptionIdentifier.msg
[ 97%] Generating Lisp code from kortex_vision_config_driver/UserProfileHandle.msg
[ 98%] Generating Python srv init.py for kortex_vision_config_driver
[ 98%] Generating Lisp code from kortex_vision_config_driver/Permission.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/BitRate.msg
[ 98%] Building CXX object ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_proto_converter.cpp.o
[ 98%] Generating Lisp code from kortex_vision_config_driver/SafetyHandle.msg
[ 98%] Built target kortex_vision_config_driver_generate_messages_py
Scanning dependencies of target kortex_device_manager
[ 98%] Building CXX object ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_ros_converter.cpp.o
[ 98%] Generating Lisp code from kortex_vision_config_driver/VisionNotification.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/IntrinsicParameters.msg
[ 98%] Building CXX object ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_proto_converter.cpp.o
[ 98%] Generating Lisp code from kortex_vision_config_driver/NotificationType.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/Unit.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/SafetyNotification.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/Option.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/Timestamp.msg
[ 98%] Generating Lisp code from kortex_vision_config_driver/SafetyStatusValue.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/FocusAction.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/Resolution.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/Empty.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/FrameRate.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/SensorIdentifier.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/NotificationHandle.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/Connection.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/OptionValue.msg
[ 99%] Generating Lisp code from kortex_vision_config_driver/GetIntrinsicParameters.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/SetSensorSettings.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/VisionTopic.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/GetOptionValue.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/SetDeviceID.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/SetOptionValue.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/GetSensorSettings.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/GetOptionInformation.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/DoSensorFocusAction.srv
[ 99%] Generating Lisp code from kortex_vision_config_driver/SetApiOptions.srv
[ 99%] Built target kortex_vision_config_driver_generate_messages_lisp
[ 99%] Building CXX object ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_ros_converter.cpp.o
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_device_manager/src/common_proto_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_device_manager/src/common_proto_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorconfig_proto_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorconfig_proto_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_device_manager/src/common_ros_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_device_manager/src/common_ros_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
compilation terminated.
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorconfig_ros_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorconfig_ros_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/build.make:75: recipe for target 'ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_ros_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_ros_converter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/build.make:62: recipe for target 'ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_proto_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_proto_converter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/build.make:62: recipe for target 'ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_proto_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/src/common_proto_converter.cpp.o] Error 1
CMakeFiles/Makefile2:4579: recipe for target 'ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/all' failed
make[1]: *** [ros_kortex/kortex_device_manager/CMakeFiles/kortex_device_manager.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/build.make:75: recipe for target 'ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_ros_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorconfig_ros_converter.cpp.o] Error 1
[ 99%] Building CXX object ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorcyclic_proto_converter.cpp.o
Scanning dependencies of target kortex_driver
[ 99%] Building CXX object ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_ros_converter.cpp.o
[ 99%] Building CXX object ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_proto_converter.cpp.o
[ 99%] Building CXX object ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/basecyclic_proto_converter.cpp.o
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/base_proto_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/base_proto_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorcyclic_proto_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_actuator_driver/src/actuatorcyclic_proto_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/build.make:62: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_proto_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_proto_converter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/build.make:88: recipe for target 'ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorcyclic_proto_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/src/actuatorcyclic_proto_converter.cpp.o] Error 1
CMakeFiles/Makefile2:527: recipe for target 'ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/all' failed
make[1]: *** [ros_kortex/kortex_actuator_driver/CMakeFiles/kortex_actuator_driver.dir/all] Error 2
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/base_ros_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/base_ros_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/build.make:75: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_ros_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/base_ros_converter.cpp.o] Error 1
In file included from /home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/basecyclic_proto_converter.cpp:17:0:
/home/longfei/catkin_ws/src/ros_kortex/kortex_driver/src/basecyclic_proto_converter.h:28:22: fatal error: Frame.pb.h: No such file or directory
compilation terminated.
ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/build.make:88: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/basecyclic_proto_converter.cpp.o' failed
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/src/basecyclic_proto_converter.cpp.o] Error 1
CMakeFiles/Makefile2:10651: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/all' failed
make[1]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
I got the following error when trying to execute a pose target using MoveIt! move_group_interface. I have executed the code several with success but sometimes, when I zero the arm manually to the home position (using a joystick) and re-run the code for testing, I get the error.
[ERROR] [1573778245.421304088]: Trajectory has been aborted.
[ERROR] [1573778245.421976633]: Trajectory execution failed in the arm with sub error code 69
The starting point for the trajectory did not match the actual commanded joint angles.
Before I plan, I also call setStartStateToCurrentState() to make sure the planner is updated with the current arm's state.
Can provide help to mitigate this issue?
Thanks
The installation instructions specify git clone https://github.com/protocolbuffers/protobuf --branch 3.5.1.1 (you must use this specific version)
. This works but requires a long installation/build on new machines, including on CI. It takes about 20 minutes to build, which doubles our build times and we run it tens of times each day.
Is it possible to switch to a binary installation to greatly speed up this process somehow? What makes it that this specific commit needs to be used and not a main release?
I'm using Ubuntu 16.04 and ROS kinetic
First, I followed the procedure to setup "kortex" repository from: https://github.com/Kinovarobotics/kortex.
I followed the following directory hierarchies:
examples/kortex_api
┬
├ include/
├ lib/
└ ┬
├ debug/
└ release/
Here's what I got after cmake installation:
jc@jc-Precision-5510:/opt/kortex-master/api_cpp/examples/build$ sudo cmake .. -DCMAKE_BUILD_TYPE=release
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
---------------------------------------------------------------------------------
Project 'Getting_started' args:
Project building for: 'Linux' in 'release' mode
create TARGET_EXE_NAME: '01_api_creation'
create TARGET_EXE_NAME: '02-protobuf_object_manipulation'
create TARGET_EXE_NAME: '03_api_mechanism'
create TARGET_EXE_NAME: '04_error_management'
create TARGET_EXE_NAME: '05_notification'
---------------------------------------------------------------------------------
Project 'Getting_started' args:
Project building for: 'Linux' in 'release' mode
create TARGET_EXE_NAME: '01_devices_routing'
---------------------------------------------------------------------------------
Project 'Getting_started' args:
Project building for: 'Linux' in 'release' mode
create TARGET_EXE_NAME: '01-move_angular_and_cartesian'
create TARGET_EXE_NAME: '02-sequence'
---------------------------------------------------------------------------------
Project 'Getting_started' args:
Project building for: 'Linux' in 'release' mode
create TARGET_EXE_NAME: '01-low_level_cyclic'
CMake Error at CMakeLists.txt:29 (add_subdirectory):
add_subdirectory given source "300-BaseGen3_low_level_bypass" which is not
an existing directory.
---------------------------------------------------------------------------------
Project 'Getting_started' args:
Project building for: 'Linux' in 'release' mode
create TARGET_EXE_NAME: '01_vision'
-- Configuring incomplete, errors occurred!
See also "/opt/kortex-master/api_cpp/examples/build/CMakeFiles/CMakeOutput.log".
jc@jc-Precision-5510:/opt/kortex-master/api_cpp/examples/build$ make
make: *** No targets specified and no makefile found. Stop.
jc@jc-Precision-5510:/opt/kortex-master/api_cpp/examples/build$ sudo make
make: *** No targets specified and no makefile found. Stop.
Then I followed the instruction to install protobuf. No problem found expect for the same problem as issue 5315. Installation was successful after removing -Werror from src/Makefile
These are what I did before git clone the kortex-ros directory and ran cankin_make.
Any ideas where I did incorrectly or if it is a bug? Thanks!
/home/jc/catkin_ws/src/ros_kortex/kortex_examples/cpp/example_get_sensor_settings.cpp:2:59: fatal error: kortex_vision_config_driver/GetSensorSettings.h: No such file or directory
compilation terminated.
ros_kortex/kortex_examples/CMakeFiles/GetSensorSettings.dir/build.make:62: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/GetSensorSettings.dir/cpp/example_get_sensor_settings.cpp.o' failed
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/GetSensorSettings.dir/cpp/example_get_sensor_settings.cpp.o] Error 1
CMakeFiles/Makefile2:22442: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/GetSensorSettings.dir/all' failed
make[1]: *** [ros_kortex/kortex_examples/CMakeFiles/GetSensorSettings.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/jc/catkin_ws/src/ros_kortex/kortex_examples/cpp/example_play_cartesian.cpp:2:51: fatal error: kortex_driver/PlayCartesianTrajectory.h: No such file or directory
compilation terminated.
ros_kortex/kortex_examples/CMakeFiles/PlayCartesian.dir/build.make:62: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/PlayCartesian.dir/cpp/example_play_cartesian.cpp.o' failed
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/PlayCartesian.dir/cpp/example_play_cartesian.cpp.o] Error 1
CMakeFiles/Makefile2:22516: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/PlayCartesian.dir/all' failed
make[1]: *** [ros_kortex/kortex_examples/CMakeFiles/PlayCartesian.dir/all] Error 2
[ 18%] Generating Javascript code from kortex_device_manager/Unit.msg
/home/jc/catkin_ws/src/ros_kortex/kortex_examples/cpp/example_play_cartesian_position.cpp:2:59: fatal error: kortex_driver/PlayCartesianTrajectoryPosition.h: No such file or directory
compilation terminated.
[ 18%] Generating Javascript code from kortex_device_manager/IPv4Settings.msg
ros_kortex/kortex_examples/CMakeFiles/PlayCartesianPosition.dir/build.make:62: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/PlayCartesianPosition.dir/cpp/example_play_cartesian_position.cpp.o' failed
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/PlayCartesianPosition.dir/cpp/example_play_cartesian_position.cpp.o] Error 1
CMakeFiles/Makefile2:22479: recipe for target 'ros_kortex/kortex_examples/CMakeFiles/PlayCartesianPosition.dir/all' failed
make[1]: *** [ros_kortex/kortex_examples/CMakeFiles/PlayCartesianPosition.dir/all] Error 2
[ 18%] Generating Python from MSG kortex_device_manager/SafetyLimitType
[ 18%] Generating Python from MSG kortex_device_manager/SafetyConfiguration
[ 18%] Generating Javascript code from kortex_device_manager/PowerOnSelfTestResult.msg
[ 19%] Generating Javascript code from kortex_device_manager/ServiceVersion.msg
[ 19%] Generating Javascript code from kortex_device_manager/PartNumberRevision.msg
[ 19%] Generating Javascript code from kortex_device_manager/Empty.msg
[ 19%] Generating Python from MSG kortex_device_manager/FirmwareVersion
[ 19%] Generating Javascript code from kortex_device_manager/SerialNumber.msg
[ 19%] Generating Javascript code from kortex_device_manager/NotificationOptions.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyNotification.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyHandle.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyStatusValue.msg
[ 19%] Generating Javascript code from kortex_device_manager/Timestamp.msg
[ 19%] Generating Javascript code from kortex_device_manager/ModelNumber.msg
[ 19%] Generating Python from MSG kortex_device_manager/Unit
[ 19%] Generating Javascript code from kortex_device_manager/NotificationHandle.msg
[ 19%] Generating Python from MSG kortex_device_manager/IPv4Settings
[ 19%] Generating Python from MSG kortex_device_manager/PowerOnSelfTestResult
[ 19%] Generating Javascript code from kortex_device_manager/SafetyThreshold.msg
[ 19%] Generating Javascript code from kortex_device_manager/ArmState.msg
[ 19%] Generating Python from MSG kortex_device_manager/ServiceVersion
[ 19%] Generating Javascript code from kortex_device_manager/BootloaderVersion.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyEnable.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyInformation.msg
[ 19%] Generating Python from MSG kortex_device_manager/PartNumberRevision
[ 19%] Generating Javascript code from kortex_device_manager/NotificationType.msg
[ 19%] Generating Javascript code from kortex_device_manager/SafetyStatus.msg
[ 19%] Generating Python from MSG kortex_device_manager/Empty
[ 19%] Generating Javascript code from kortex_device_manager/DeviceType.msg
[ 19%] Generating Python from MSG kortex_device_manager/SerialNumber
[ 19%] Generating Javascript code from kortex_device_manager/RebootRqst.msg
[ 19%] Generating Javascript code from kortex_device_manager/Connection.msg
[ 19%] Generating Python from MSG kortex_device_manager/NotificationOptions
[ 19%] Generating Python from MSG kortex_device_manager/SafetyNotification
[ 19%] Generating Javascript code from kortex_device_manager/RunModes.msg
[ 19%] Generating Javascript code from kortex_device_manager/DeviceHandle.msg
[ 19%] Generating Python from MSG kortex_device_manager/SafetyHandle
[ 20%] Generating Python from MSG kortex_device_manager/SafetyStatusValue
[ 20%] Generating Javascript code from kortex_device_manager/UserProfileHandle.msg
[ 20%] Generating Python from MSG kortex_device_manager/Timestamp
[ 20%] Generating Javascript code from kortex_device_manager/RunMode.msg
[ 20%] Generating Javascript code from kortex_device_manager/Permission.msg
[ 20%] Generating Python from MSG kortex_device_manager/ModelNumber
[ 20%] Generating Python from MSG kortex_device_manager/NotificationHandle
[ 20%] Generating Python from MSG kortex_device_manager/SafetyThreshold
[ 20%] Generating Python from MSG kortex_device_manager/ArmState
[ 20%] Generating Javascript code from kortex_device_manager/SafetyInformationList.msg
[ 20%] Linking CXX executable /home/jc/catkin_ws/devel/lib/kortex_examples/SetControlLoopParameters
[ 20%] Linking CXX executable /home/jc/catkin_ws/devel/lib/kortex_examples/GetControlLoopParameters
[ 20%] Linking CXX executable /home/jc/catkin_ws/devel/lib/kortex_examples/ReadAllDevices
[ 20%] Generating Python from MSG kortex_device_manager/SafetyEnable
[ 20%] Generating Python from MSG kortex_device_manager/BootloaderVersion
[ 20%] Generating Python from MSG kortex_device_manager/SafetyInformation
[ 21%] Generating Javascript code from kortex_device_manager/DeviceHandles.msg
[ 21%] Generating Javascript code from kortex_device_manager/KortexError.msg
[ 21%] Generating Javascript code from kortex_device_manager/SetRunMode.srv
[ 21%] Generating Javascript code from kortex_device_manager/GetFirmwareVersion.srv
[ 21%] Generating Javascript code from kortex_device_manager/SetPartNumber.srv
[ 21%] Generating Python from MSG kortex_device_manager/NotificationType
[ 21%] Generating Python from MSG kortex_device_manager/SafetyStatus
[ 21%] Generating Python from MSG kortex_device_manager/DeviceType
[ 21%] Built target ReadAllDevices
[ 21%] Generating Javascript code from kortex_device_manager/ClearSafetyStatus.srv
[ 21%] Built target GetControlLoopParameters
[ 21%] Generating Javascript code from kortex_device_manager/SetPartNumberRevision.srv
[ 21%] Built target SetControlLoopParameters
[ 21%] Generating Python from MSG kortex_device_manager/RebootRqst
[ 21%] Generating Javascript code from kortex_device_manager/SetIPv4Settings.srv
[ 21%] Generating Javascript code from kortex_device_manager/GetSafetyInformation.srv
[ 21%] Generating Python from MSG kortex_device_manager/Connection
[ 21%] Generating Python from MSG kortex_device_manager/RunModes
[ 21%] Generating Javascript code from kortex_device_manager/ResetSafetyDefaults.srv
[ 21%] Generating Javascript code from kortex_device_manager/ClearAllSafetyStatus.srv
[ 21%] Generating Python from MSG kortex_device_manager/DeviceHandle
[ 21%] Generating Javascript code from kortex_device_manager/GetIPv4Settings.srv
[ 21%] Generating Python from MSG kortex_device_manager/UserProfileHandle
[ 21%] Generating Python from MSG kortex_device_manager/RunMode
[ 21%] Generating Javascript code from kortex_device_manager/GetRunMode.srv
[ 21%] Generating Python from MSG kortex_device_manager/Permission
[ 21%] Generating Python from MSG kortex_device_manager/SafetyInformationList
[ 21%] Generating Javascript code from kortex_device_manager/GetMACAddress.srv
[ 21%] Generating Python from MSG kortex_device_manager/DeviceHandles
[ 21%] Generating Javascript code from kortex_device_manager/SetSafetyEnable.srv
[ 21%] Generating Python from MSG kortex_device_manager/KortexError
[ 21%] Generating Python code from SRV kortex_device_manager/SetRunMode
[ 21%] Generating Python code from SRV kortex_device_manager/GetFirmwareVersion
[ 21%] Generating Javascript code from kortex_device_manager/GetAllSafetyConfiguration.srv
[ 21%] Generating Python code from SRV kortex_device_manager/SetPartNumber
[ 21%] Generating Python code from SRV kortex_device_manager/ClearSafetyStatus
[ 21%] Generating Python code from SRV kortex_device_manager/SetPartNumberRevision
[ 22%] Generating Python code from SRV kortex_device_manager/SetIPv4Settings
[ 22%] Generating Javascript code from kortex_device_manager/ReadAllDevices.srv
[ 22%] Generating Python code from SRV kortex_device_manager/GetSafetyInformation
[ 22%] Generating Python code from SRV kortex_device_manager/ResetSafetyDefaults
[ 22%] Generating Python code from SRV kortex_device_manager/ClearAllSafetyStatus
[ 22%] Generating Python code from SRV kortex_device_manager/GetRunMode
[ 22%] Generating Python code from SRV kortex_device_manager/GetIPv4Settings
[ 22%] Generating Javascript code from kortex_device_manager/GetSafetyConfiguration.srv
[ 22%] Generating Python code from SRV kortex_device_manager/GetMACAddress
[ 22%] Generating Python code from SRV kortex_device_manager/SetSafetyEnable
[ 22%] Generating Python code from SRV kortex_device_manager/GetAllSafetyConfiguration
[ 22%] Generating Python code from SRV kortex_device_manager/ReadAllDevices
[ 22%] Generating Python code from SRV kortex_device_manager/GetSafetyConfiguration
[ 22%] Generating Javascript code from kortex_device_manager/RebootRequest.srv
[ 22%] Generating Python code from SRV kortex_device_manager/RebootRequest
[ 22%] Generating Javascript code from kortex_device_manager/SafetyTopic.srv
[ 22%] Generating Python code from SRV kortex_device_manager/SafetyTopic
[ 22%] Generating Python code from SRV kortex_device_manager/GetPartNumberRevision
[ 22%] Generating Javascript code from kortex_device_manager/GetPartNumberRevision.srv
[ 22%] Generating Javascript code from kortex_device_manager/GetAllSafetyInformation.srv
[ 22%] Generating Python code from SRV kortex_device_manager/GetAllSafetyInformation
[ 22%] Generating Python code from SRV kortex_device_manager/GetSerialNumber
[ 22%] Generating Python code from SRV kortex_device_manager/GetSafetyStatus
[ 22%] Generating Python code from SRV kortex_device_manager/GetModelNumber
[ 22%] Generating Python code from SRV kortex_device_manager/GetDeviceType
[ 22%] Generating Python code from SRV kortex_device_manager/GetBootloaderVersion
[ 22%] Generating Javascript code from kortex_device_manager/GetSerialNumber.srv
[ 22%] Generating Python code from SRV kortex_device_manager/SetMACAddress
[ 22%] Generating Python code from SRV kortex_device_manager/SetSerialNumber
[ 22%] Generating Python code from SRV kortex_device_manager/SetModelNumber
[ 22%] Generating Python code from SRV kortex_device_manager/GetSafetyEnable
[ 22%] Generating Javascript code from kortex_device_manager/GetSafetyStatus.srv
[ 22%] Generating Python code from SRV kortex_device_manager/SetSafetyConfiguration
[ 22%] Generating Python code from SRV kortex_device_manager/SetSafetyWarningThreshold
[ 23%] Generating Python code from SRV kortex_device_manager/SetSafetyErrorThreshold
[ 23%] Generating Python code from SRV kortex_device_manager/GetPartNumber
[ 23%] Generating Javascript code from kortex_device_manager/GetModelNumber.srv
[ 23%] Generating Python code from SRV kortex_device_manager/GetPowerOnSelfTestResult
[ 23%] Generating Javascript code from kortex_device_manager/GetDeviceType.srv
[ 23%] Generating Javascript code from kortex_device_manager/GetBootloaderVersion.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetMACAddress.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetSerialNumber.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetModelNumber.srv
[ 24%] Generating Javascript code from kortex_device_manager/GetSafetyEnable.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetSafetyConfiguration.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetSafetyWarningThreshold.srv
[ 24%] Generating Javascript code from kortex_device_manager/SetSafetyErrorThreshold.srv
[ 24%] Generating Python msg __init__.py for kortex_device_manager
[ 24%] Generating Javascript code from kortex_device_manager/GetPartNumber.srv
[ 24%] Generating Javascript code from kortex_device_manager/GetPowerOnSelfTestResult.srv
[ 24%] Generating Python srv __init__.py for kortex_device_manager
[ 24%] Built target kortex_device_manager_generate_messages_nodejs
[ 24%] Built target kortex_device_manager_generate_messages_py
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
Greetings,
I'm trying to install the latest ros_kortex packages, but I'm facing some issues.
When I catkin_make my workspace, I get a multitude of errors with the two repeating templates.
In file included from /usr/include/ignition/msgs1/ignition/msgs/MessageTypes.hh:164:0,
from /usr/include/ignition/msgs1/ignition/msgs/Utility.hh:29,
from /usr/include/ignition/msgs1/ignition/msgs.hh:25,
from /usr/include/ignition/transport4/ignition/transport/Node.hh:32,
from /usr/include/gazebo-9/gazebo/physics/Entity.hh:25,
from /usr/include/gazebo-9/gazebo/physics/Model.hh:30,
from /usr/include/gazebo-9/gazebo/physics/Actor.hh:26,
from /usr/include/gazebo-9/gazebo/physics/physics.hh:2,
from /home/judejtng/cronos_ws/src/ros_kortex/third_party/gazebo-pkgs/gazebo_version_helpers/src/GazeboVersionHelpers.cpp:2:
/usr/include/ignition/msgs1/ignition/msgs/visual_v.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
#error This file was generated by a newer version of protoc which is
^~~~~
/usr/include/ignition/msgs1/ignition/msgs/visual_v.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
#error incompatible with your Protocol Buffer headers. Please update
^~~~~
/usr/include/ignition/msgs1/ignition/msgs/visual_v.pb.h:14:2: error: #error your headers.
#error your headers.
In file included from /usr/include/google/protobuf/stubs/macros.h:34:0,
from /usr/include/google/protobuf/stubs/logging.h:34,
from /usr/include/google/protobuf/arena.h:55,
from /usr/include/ignition/msgs1/ignition/msgs/color.pb.h:22,
from /usr/include/gazebo-9/gazebo/msgs/msgs.hh:32,
from /usr/include/gazebo-9/gazebo/gazebo_core.hh:20,
from /usr/include/gazebo-9/gazebo/gazebo.hh:20,
from /home/judejtng/cronos_ws/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:37,
from /home/judejtng/cronos_ws/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/google/protobuf/stubs/port.h:145:21: error: redefinition of ‘const uint32 google::protobuf::kuint32max’
static const uint32 kuint32max = 0xFFFFFFFFu;
^~~~~~~~~~
In file included from /usr/include/ignition/msgs1/ignition/msgs/color.pb.h:9:0,
from /usr/include/gazebo-9/gazebo/msgs/msgs.hh:32,
from /usr/include/gazebo-9/gazebo/gazebo_core.hh:20,
from /usr/include/gazebo-9/gazebo/gazebo.hh:20,
from /home/judejtng/cronos_ws/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:37,
from /home/judejtng/cronos_ws/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/home/judejtng/cronos_ws/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/../../kortex_gazebo/include/google/protobuf/stubs/common.h:201:21: note: ‘const uint32 google::protobuf::kuint32max’ previously defined here
static const uint32 kuint32max = 0xFFFFFFFFu;
What could be the source of the errors? It seems to me that two versions of protobuf are visible to the compiler - one included in kortex_api/include/google/protobuf, the other in /usr/include/google/protobuf - and the compiler is confused.
$ protoc --version
tells me I have version 3.0.0 installed. I think it was automatically installed when I installed Gazebo a while back.
Has anyone experienced this issue and/or can point me in the right direction to solving it? Thanks! :)
Best regards,
Jude
Several thoughts here:
It would be nice if you guys developed and maintained a ros_control package for use with moveit and others.
Franka did quite a nice job with their control interface - I'd take a look at it for reference.
https://github.com/frankaemika/franka_ros
We have developed one ourselves but it has several shortcomings as of yet. It would be nice for Kinova to use the baked in ros_control feature to switch controllers when switching into impedance mode for example when the buttons on the end effector are pressed. It would also be super helpful because it touches so many components that Kinova maintains - loop rates etc.
It would be ideal for several interfaces to be exposed in this way. @nsaif-kinova tagging you to take a look at this. It is not super high priority for Peanut atm since we wrote our own - but we would really prefer for Kinova to take this on from a maintenance perspective.
There are also consultants out there that specialize in developing these things I would recommend working with https://picknik.ai/ - they are maintainers on both ros and ros_control and I believe they have built many ros_control interfaces for robotics companies before.
Hello, I saw a video on YouTube. At the end of the view, gen3 can realize follow the goal in real time. I want to know how is it controlled? Thanks!
I would like to send a set of waypoints for the robot arm to execute (not in Gazebo, but the real hardware). I see there is an example showing how to send one goal, but how about if I have a number of via points that I compute separately? They are usually 7D points in the joint space. On other robots, I can send them over to the Joint Trajectory Controller. Is there a way to achieve this on our Kinova Gen3 arm?
I have a 2F-85
gripper and I looked at the updated release v2.0.0
.
I noticed there is a new information in the rostopic called joint_states
about effort
on the gripper.
However, the value of this quantity is always fixed at zero, even though we applied force at the fingers.
Is this the expected behaviour? Is it possible to somehow read this value? For example, in order to have a force control loop.
Thanks
It would be nice if we can send joint velocity and cartesian velocity commands using rostopics instead of services.
I'm using ROS kinetic on Ubuntu 16.04.
When I tried to run the kortex examples I got the following message:
jc@jc-Precision-5510:~$ rosrun kortex_examples PlayCartesianPosition
[ERROR] [1555963602.033615137]: Failed to retrieve the cyclic data.
I followed the steps from the kortex_example.
jc@jc-Precision-5510:~$ rosrun kortex_device_manager kortex_device_manager 192.168.1.10
[ INFO] [1555963523.426156091]: Connecting to IP = 192.168.1.10
Session Created
[ INFO] [1555963525.510737197]: Node's services initialized correctly.
kortex_actuator driver gave an error message as well.
jc@jc-Precision-5510:~$ rosrun kortex_actuator_driver kortex_actuator_driver 1.168.1.10 100
[ INFO] [1555963586.913819529]: Connecting to IP = 192.168.1.10 - node refresh rate = 100, device ID = 0
[ INFO] [1555963588.989972338]: Node's services initialized correctly.
[ERROR] [1555963602.033464805]: client wants service /RefreshFeedback to have md5sum cc527e10b6cbeb93059adfab44147b77, but it has afdcac728d5cb28b98f9f7ec4a0fa269. Dropping connection.
When I launch roslaunch kortex_description display.launch
I get the following error:
[ERROR] [1562104136.827489851]: The STL file 'package://kortex_description/meshes/EndEffector_Link.STL' is malformed. It appears to be a binary STL file but does not contain enough data for the 80 byte header and 32-bit integer triangle count. [ERROR] [1562104136.827520627]: Failed to load file [package://kortex_description/meshes/EndEffector_Link.STL] [ERROR] [1562104136.827701138]: Could not load model 'package://kortex_description/meshes/EndEffector_Link.STL' for link 'EndEffector_Link': OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource package://kortex_description/meshes/EndEffector_Link.STL in resource group Autodetect or any other group. in ResourceGroupManager::openResource at /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 756)
The first line says the EndEffector_Link.STL is malformed, would that be the problem? And if so, do we have access to a CAD model in SolidWorks or the like, to save a fresh version of the STL file myself?
Currently link names are in the style of 'ForeArm_Link' and joints are in the more sensible form of 'ActuatorN'. REP199 (unmerged) recommends link names à la 'link_N' and 'joint_N' (lowercase only!). base_link
is already in the right format, but the following links aren't and use a different convention.
If this is just a change on the ROS repo, happy to open a PR myself to change this. In any case, combining camel casing with underscores is massive cringe to anyone software.
Greetings,
there exists an offset between the tool/end effector pose returned by kortex's BaseCyclic_Feedback.pose.tool_pose_xyz and MoveIt's arm_group.get_current_pose().
For example with the EEF facing towards the ground:
MoveIt:
x: -0.0237346354686
y: 0.24785572974
z: 0.0580734261844
orientation:
x: -0.0432058638949
y: -0.99869048994
z: -0.0215183862723
w: 0.0169563463014
kortex_driver:
position:
x: -0.0275755301118
y: 0.253189027309
z: -0.0617465749383
orientation:
x: 0.043206269999861865
y: 0.9986904800693364
z: 0.021518075282811973
w: -0.01695628755655937
Difference:
x: 0.00384089464324
y: -0.00533329756901
z: 0.119820001123
Upon testing some other poses, it looks like MoveIt defines the EEF link ~10cm further out from the bracelet joint than kortex_driver does.
This difference in readings is problematic, as I would like to freely switch between controlling the arm with kortex_driver and MoveIt. What would you suggest?
Best regards,
Jude
In kortex_driver.launch, you provided a method to control kortex with move_it, but I want to control in in joint space, just send command to each joint. How can I make a launch file to achieve this? Thank you,
Hi, I want to send joint torques to each joint of Kortex gen 3 in ROS, how can I realize it? Thank you.
Hello,
I want to know which frame is the reference of the Cartesian (end effector) pose.
We can compute an end-effector pose from the current joint angles and the robot description given by the URDF. I used KDL to compute this. The frames can be clearly defined; the base frame is base_link, and the end-effector frame is EndEffector_Link.
On the other hand, we can also get an end-effector pose via RefreshFeedback service, which contains output.base.tool_pose_* values.
However I do not understand on which frame these values are defined.
For joint angles q = [ 6.0369 1.0921 3.3023 4.6336 6.0416 1.182 1.5333]
,
KDL: x = [ 0.6592 0.0651 0.1971 0.5006 0.4804 0.4949 0.5232]
RefreshFeedback: x = [ 0.779 0.0593 0.2015 0.5006 0.4804 0.4949 0.5232]
(Note: RefreshFeedback gives the orientation in Euler angles in degrees, which were converted to quaternion)
The orientations are the same, while there is small difference in the positions. The reason would be the reference frame is different.
Then which frame is the reference of RefreshFeedback?
I think this is an important question since such a reference frame should be commonly used in other services such as PlayCartesianTrajectory.
Thanks!
--Akihiko
Update:
When the robot is straight (q=[ 2.5679e-03 6.2816e+00 3.1687e+00 6.2675e+00 1.5262e-02 6.2823e+00 1.5847e+00]
),
KDL: x=[ 6.7176e-03 1.1250e-03 1.1873e+00 5.3245e-03 5.2877e-03 6.8599e-01 7.2757e-01]
RefreshFeedback: [ 8.5176e-03 1.0656e-03 1.3073e+00 5.3246e-03 5.2877e-03 6.8599e-01 7.2757e-01]
Since the robot total length is 1187.3 mm, the KDL result is correct.
ROS 2 support for all the attached packages
I'm trying to use the vision module (I'm more interested in the depth point cloud). As I understood, I need to activate the publisher. So I wrote this node:
void notification_callback(const kortex_driver::VisionNotification::ConstPtr& notif) {
ROS_INFO("Got data");
}
void activate_vision_topic(ros::NodeHandle n, std::string robot_name) {
// See if we have the vision module connected
ros::ServiceClient service_client_read_all_devices = n.serviceClient<kortex_driver::ReadAllDevices>("/" + robot_name + "/device_manager/read_all_devices");
kortex_driver::ReadAllDevices service_read_all_devices;
if (service_client_read_all_devices.call(service_read_all_devices)) {
auto output = service_read_all_devices.response.output;
for (int i=0; i<output.device_handle.size(); i++) {
if (output.device_handle[i].device_type == kortex_driver::DeviceTypes::VISION) {
ROS_INFO_STREAM("VISION MODULE >> DevID:" << output.device_handle[i].device_identifier <<
" DevType: " << output.device_handle[i].device_type <<
" DevOrder: " << output.device_handle[i].order);
break;
}
}
}
//Activate the vision topic
std::string VISION_TOPIC_ACTIVATION_NAME = "/" + robot_name + "/vision_config/activate_publishing_of_vision_topic";
ros::ServiceClient service_client_activate_notif = n.serviceClient<kortex_driver::OnNotificationVisionTopic>(VISION_TOPIC_ACTIVATION_NAME);
kortex_driver::OnNotificationVisionTopic service_activate_notif;
service_activate_notif.request.input.rate_m_sec = 33;
service_activate_notif.request.input.threshold_value = 0.01f; // Don't know what this does
service_activate_notif.request.input.type = kortex_driver::Sensor::SENSOR_DEPTH;
if (service_client_activate_notif.call(service_activate_notif)) {
ROS_INFO_STREAM("Publisher activated");
}
else { ROS_ERROR_STREAM("Cannot activate"); }
ros::Duration(1.0).sleep();
}
int main(int argc, char **argv) {
ros::init(argc, argv, "activate_vision");
ros::NodeHandle n;
std::string robot_name = "my_gen3";
ros::Subscriber sub = n.subscribe("/" + robot_name + "/vision_topic", 1000, notification_callback);
activate_vision_topic(n, robot_name);
ros::spin();
return 0;
}
About half the time I get the error:
[ INFO] [1570573329.615870357]: Kortex exception
[ INFO] [1570573329.615934206]: KINOVA exception error code: 1
[ INFO] [1570573329.615987718]: KINOVA exception error sub code: 52
[ INFO] [1570573329.616049492]: KINOVA exception description: Server protocol error, Error sub type=INVALID_DEVICE => <srv: 5, fct: 8, msgType: 3> description: The device id 255 is invalid and doesn't correspond to a registered device.
The other half, there are no errors but there is nothing being published under the /my_gen3/vision_topic
topic regardless.
Am I missing something?
Hi,
I was trying to compile the ros_kortex package, but running into following error:
[ 21%] Building CXX object ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/base_services.cpp.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-7/README.Bugs for instructions.
ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:230: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/base_services.cpp.o' failed
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/base_services.cpp.o] Error 4
CMakeFiles/Makefile2:5378: recipe for target 'ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/all' failed
make[1]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j1 -l1" failed
I have setup ROS Melodic and I am running Ubuntu 18.04 in VMware 15.
Hello, I have a problem on this manipulator. The ROS example of joint control and cartesian control works well on the real robot. The moveit example in the kortex_example package also works well in Gazebo, however, when it comes to the real robot, all the commands are rejected. The error shows as follow:
[ INFO] [1577536720.839343151]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1577536720.857312273]: Planner configuration 'arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1577536720.904154537]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1577536720.907537266]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1577536720.907631471]: Solution found in 0.003769 seconds
[ INFO] [1577536720.925600314]: SimpleSetup: Path simplification took 0.017706 seconds and changed from 4 to 2 states
[ INFO] [1577536720.933210109]: Execution request received
[ INFO] [1577536720.939686916]: New goal received.
[ERROR] [1577536720.939746196]: Joint Trajectory Goal is rejected.
[ WARN] [1577536720.940266595]: Controller handle gen3_joint_trajectory_controller reports status FAILED
[ INFO] [1577536720.940329222]: Completed trajectory execution with status FAILED ...
[ INFO] [1577536720.940455986]: Execution completed: FAILED
Can you help me fix it?
Hi, there seems to be a namespace mismatch. When I tried to run the moveit examples following the instructions in https://github.com/Kinovarobotics/ros_kortex/blob/kinetic-devel/kortex_examples/readme.md, I received an error after running example_move_it_trajectories.py
(https://pastebin.com/6j0P97xQ).
The problem goes away if I do rosrun kortex_examples example_move_it_trajectories.py __ns:=my_gen3
although I did not change anything in my kortex_driver.launch
.
Note: when I printed rospy.get_namespace()
, it printed out /
.
Hello there! :)
I would like to control the Gazebo-simulated arm by sending Twist msgs to the '/my_gen3/base/send_twist_command'.
For the real robot, kortex_driver.launch starts this service. However, this launch file seems to always require a real robot running.
Is there a way to get kortex_driver working with the simulation? Or did I perhaps miss an equivalent service or topic in the simulation?
Best regards,
Jude
Hi,
I'm using the Kortex ROS driver for the Gen3 arm. When I type roslaunch kortex_driver kortex_driver.launch
in my terminal, it shows some errors like the following. But my Kortex ROS was working correctly, and I had never seen these errors before. So I downloaded the latest version and followed all the installation steps. But the same error still pops out.
Thank you so much for reading my issue.
[ WARN] [1580845191.480645268]: The 'state_publisher' executable is deprecated. Please use 'robot_state_publisher' instead
[ERROR] [1580845191.485031069]: Could not find parameter robot_description on parameter server
[ERROR] [1580845191.507635936]: Robot model parameter not found! Did you remap 'robot_description'?
[ERROR] [1580845191.530794940]: Robot model not loaded
[ERROR] [1580845191.550457520]: Planning scene not configured
[ INFO] [1580845191.572563343]: Session created successfully for TCP services
[ INFO] [1580845191.581272801]: Session created successfully for UDP services
[ERROR] [1580845191.592877918]: The gripper model specified in the launch file doesn't match the detected arm's gripper model, shutting down the node...
terminate called after throwing an instance of 'std::runtime_error*'
[my_gen3/my_gen3_driver-1] process has died [pid 10383, exit code -6, cmd /home/roahmlab/catkin_ws_kortex/devel/lib/kortex_driver/kortex_arm_driver __name:=my_gen3_driver __log:=/home/roahmlab/.ros/log/8f37afb4-477e-11ea-bc94-9cb6d0f2117d/my_gen3-my_gen3_driver-1.log].
log file: /home/roahmlab/.ros/log/8f37afb4-477e-11ea-bc94-9cb6d0f2117d/my_gen3-my_gen3_driver-1*.log
[my_gen3/robot_state_publisher-4] process has died [pid 10386, exit code 1, cmd /opt/ros/melodic/lib/robot_state_publisher/state_publisher __name:=robot_state_publisher __log:=/home/roahmlab/.ros/log/8f37afb4-477e-11ea-bc94-9cb6d0f2117d/my_gen3-robot_state_publisher-4.log].
log file: /home/roahmlab/.ros/log/8f37afb4-477e-11ea-bc94-9cb6d0f2117d/my_gen3-robot_state_publisher-4*.log
After installing ros_kortex, I was able to run the following examples properly:
GetControlLoopParameters
GetSensorSettings
ReadAllDevices
But when I run the SetControlLoopParameters
, I got the following messages:
[ INFO] [1552494833.992110908]: KINOVA exception: 4
[ERROR] [1552494833.992377045]: Failed to call SetControlLoopParameters
When I run the PlayCartesian
and PlayCartesianPosition
, I got the following messages:
[ERROR] [1552494976.854756141]: client wants service /RefreshFeedback to have md5sum cc527e10b6cbeb93059adfab44147b77, but it has afdcac728d5cb28b98f9f7ec4a0fa269. Dropping connection.
[ERROR] [1552494976.855100999]: Failed to retrieve the cyclic data.
As mentioned in kortex-issues#3, the SendJointSpeedsCommand function is now available with the 2.0 release.
Can we control joint speed from ROS? In that case, could you explain how to do that?
Or, should we directly use SendJointSpeedsCommand
through kortex
?
Best,
--Akihiko
Hello,
when I was compiling the latest version of ros_kortex
by following the instruction of readme.md, I encountered the following errors.
It looks that it is due to the version compatibility of protoc.
This discussion says that I should use protobuf-2.6.1
, but my version is 3.5.1 since it is indicated in the ros_kortex
installation guide.
How can I solve this issue?
/usr/include/gazebo-7/gazebo/msgs/topic_info.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
#error This file was generated by an older version of protoc which is
^
/usr/include/gazebo-7/gazebo/msgs/topic_info.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
#error incompatible with your Protocol Buffer headers. Please
^
/usr/include/gazebo-7/gazebo/msgs/topic_info.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
#error regenerate this file with a newer version of protoc.
Many thanks!
Hello,
I'm trying to change the publishing rate of joint_states
.
According to the kortex_driver/readme.md, cyclic_data_publish_rate
is the parameter for changing that, and it's default is 100.
However, when I launch the drive by:
$ roslaunch kortex_driver kortex_driver.launch ip_address:=gen3a start_moveit:=false start_rviz:=true robot_name:=gen3a
the average rate of /gen3a/joint_states
is around 10.
$ rostopic hz /gen3a/joint_states
subscribed to [/gen3a/joint_states]
average rate: 10.001
min: 0.099s max: 0.101s std dev: 0.00043s window: 10
average rate: 10.001
min: 0.099s max: 0.101s std dev: 0.00040s window: 20
average rate: 10.000
min: 0.099s max: 0.101s std dev: 0.00037s window: 30
I added cyclic_data_publish_rate:=200
and then cyclic_data_publish_rate:=5
at the end of the launch command line, but it had no effect. Although the SUMMARY of the launch showed the parameter was changed,
PARAMETERS
...
* /gen3a/gen3a_driver/cyclic_data_publish_rate: 5
the rate measured by rostopic hz
was still 10.
If this issue is due to a kind of latency, it should be able to decrease the rate under 10, but even if setting the rate to be 5, the actual rate is 10.
This means that I am misunderstanding, or there is a bug in kortex_driver
.
Any ideas?
I'm curious about the timeline for releasing either ros_control or MoveIt code. Any thoughts on when this might be available?
Thanks,
Evan
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.