Giter Club home page Giter Club logo

open_manipulator's Introduction

open_manipulator's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open_manipulator's Issues

OpenManipulator 2.0.0

  • manipulation library (robotis_manipulator)

  • Support graphic user interface

  • Update controller with MoveIt!

  • Update perception library

  • Add teleop package

  • Add friends example (SCARA, Link, Planar, Delta, Stewart, Linear)

Upload Open manipulator example of opencr in arduino IDE issue

Hello.
I meet new problem.
Because when I tried to upload 'open cr/example/processing/chain' in arduino IDE, the verify step of IDE always gave below errors.

Do you know what is the problem?


Arduino: 1.8.8 (Linux), Board: "OpenCR Board, OpenCR Bootloader"

Chain:24:1: error: 'ChildApplet' does not name a type
 ChildApplet child;
 ^
Chain:27:1: error: 'import' does not name a type
 import controlP5.*;
 ^
Chain:30:1: error: 'import' does not name a type
 import processing.serial.*;
 ^
Chain:33:1: error: 'PShape' does not name a type
 PShape goal_link1_shape, goal_link2_shape, goal_link3_shape, goal_link4_shape, goal_link5_shape, goal_left_palm_shape, goal_right_palm_shape;
 ^
Chain:34:1: error: 'PShape' does not name a type
 PShape ctrl_link1_shape, ctrl_link2_shape, ctrl_link3_shape, ctrl_link4_shape, ctrl_link5_shape, ctrl_left_palm_shape, ctrl_right_palm_shape;
 ^
Chain:43:1: error: 'Serial' does not name a type
 Serial opencr_port;
 ^
Chain:46:6: error: expected unqualified-id before '[' token
 float[] receive_joint_angle = new float[4];
      ^
Chain:47:6: error: expected unqualified-id before '[' token
 float[] receive_gripper_pos = new float[2];
      ^
Chain:49:6: error: expected unqualified-id before '[' token
 float[] ctrl_joint_angle = new float[4];
      ^
Chain:50:6: error: expected unqualified-id before '[' token
 float[] ctrl_gripper_pos = new float[2];
      ^
Chain:54:6: error: expected unqualified-id before '[' token
 float[] visual_target_pose_x = new float[50];
      ^
Chain:55:6: error: expected unqualified-id before '[' token
 float[] visual_target_pose_y = new float[50];
      ^
Chain:56:6: error: expected unqualified-id before '[' token
 float[] visual_target_pose_z = new float[50];
      ^
Chain:108:18: error: variable or field 'serialEvent' declared void
 void serialEvent(Serial opencr_port)
                  ^
Chain:108:25: error: expected ')' before 'opencr_port'
 void serialEvent(Serial opencr_port)
                         ^
Chain:462:17: error: variable or field 'mouseWheel' declared void
 void mouseWheel(MouseEvent event) {
                 ^
Chain:462:17: error: 'MouseEvent' was not declared in this scope
/home/ming/.arduino15/packages/OpenCR/hardware/OpenCR/1.3.2/libraries/OpenManipulator/example/Processing/Chain/Chain.pde: In function 'void settings()':
Chain:63:18: error: 'OPENGL' was not declared in this scope
   size(900, 900, OPENGL);
                  ^
Chain:63:24: error: 'size' was not declared in this scope
   size(900, 900, OPENGL);
                        ^
/home/ming/.arduino15/packages/OpenCR/hardware/OpenCR/1.3.2/libraries/OpenManipulator/example/Processing/Chain/Chain.pde: In function 'void setup()':
Chain:71:3: error: 'surface' was not declared in this scope
   surface.setTitle("OpenManipulator Chain");
   ^
Chain:72:3: error: 'child' was not declared in this scope
   child = new ChildApplet();
   ^
Chain:72:15: error: expected type-specifier before 'ChildApplet'
   child = new ChildApplet();
               ^
/home/ming/.arduino15/packages/OpenCR/hardware/OpenCR/1.3.2/libraries/OpenManipulator/example/Processing/Chain/Chain.pde: In function 'void connectOpenCR(int)':
Chain:98:21: error: 'class USBSerial' has no member named 'list'
   printArray(Serial.list());
                     ^
Chain:98:27: error: 'printArray' was not declared in this scope
   printArray(Serial.list());
                           ^
Chain:100:29: error: 'class USBSerial' has no member named 'list'
   String port_name = Serial.list()[port_num];
                             ^
Chain:101:3: error: 'opencr_port' was not declared in this scope
   opencr_port = new Serial(this, port_name, 57600);
   ^
Chain:101:21: error: expected type-specifier before 'Serial'
   opencr_port = new Serial(this, port_name, 57600);
                     ^
/home/ming/.arduino15/packages/OpenCR/hardware/OpenCR/1.3.2/libraries/OpenManipulator/example/Processing/Chain/Chain.pde: At global scope:
Chain:108:18: error: variable or field 'serialEvent' declared void
 void serialEvent(Serial opencr_port)
                  ^
Chain:108:25: error: expected ')' before 'opencr_port'
 void serialEvent(Serial opencr_port)
                         ^
exit status 1
'ChildApplet' does not name a type

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

About dynamixel sdk in ROS

Hi dear,
Recently, I am working on ROS with your product. I met a problem that when I use catkin_make to make your ros package from here( https://github.com/ROBOTIS-GIT/DynamixelSDK), it could build and source and run python document. But, when I try to add c++ document from your c++ folder, it can not make and build.Also, I added : add_executable(executable_name ${SRCS1})
target_link_libraries(executable_name ${catkin_LIBRARIES}) in your official ros package. But it shows the error that “”ld returned 1 exit status” and can not find dynamixel::PortHandler::getPortHandler(DEVICENAME) and dynamixel::PacketHandler::getPacketHandler(PROTOCOL_VERSION);

read_write.cpp:(.text+0x23f): undefined reference to dynamixel::PortHandler::getPortHandler(char const*)' read_write.cpp:(.text+0x250): undefined reference to dynamixel::PacketHandler::getPacketHandler(float)'
collect2: error: ld returned 1 exit status

Can you help me figure it out?
Thanks,
Yunchu

Open Manipulator with TB3

Hello .
I want to connect my remote pc with turtlebot waffle with open manipulator.
Each of part works well.

But errors happened when I follow the manual.
Error happened like below.
So I checked , there is no <State.h> file, but file 'Pick.cpp' need 'state.h' file in package 'open_manipulator_with_tb3_tools'.


/home/ming/catkin_ws/src/open_manipulator_with_tb3/open_manipulator_with_tb3_tools/src/place.cpp:27:41: fatal error: open_manipulator_msgs/State.h: No such file or directory compilation terminated. /home/ming/catkin_ws/src/open_manipulator_with_tb3/open_manipulator_with_tb3_tools/src/pick.cpp:27:41: fatal error: open_manipulator_msgs/State.h: No such file or directory compilation terminated. open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/place.dir/build.make:62: recipe for target 'open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/place.dir/src/place.cpp.o' failed make[2]: *** [open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/place.dir/src/place.cpp.o] Error 1 CMakeFiles/Makefile2:4718: recipe for target 'open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/place.dir/all' failed make[1]: *** [open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/place.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/pick.dir/build.make:62: recipe for target 'open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/pick.dir/src/pick.cpp.o' failed make[2]: *** [open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/pick.dir/src/pick.cpp.o] Error 1 CMakeFiles/Makefile2:5023: recipe for target 'open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/pick.dir/all' failed make[1]: *** [open_manipulator_with_tb3/open_manipulator_with_tb3_tools/CMakeFiles/pick.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j12 -l12" failed

Missing file - dynamixel_workbench.h

I am working from ROS_Robot_Programing_EN.pdf Cahpter 13.2.2 Manipulator Modeling

After cloning as follows; git clone https://github.com/ROBOTIS-GIT/open_manipulator.git

Then performing; cd ~/catkin_ws && catkin_make

I obtain the following error; [ 98%] Built target ros_tutorials_action_generate_messages
In file included from /home/mozza/catkin_ws/src/open_manipulator/open_manipulator_dynamixel_ctrl/src/dynamixel_controller.cpp:19:0:
/home/mozza/catkin_ws/src/open_manipulator/open_manipulator_dynamixel_ctrl/include/open_manipulator_dynamixel_ctrl/dynamixel_controller.h:24:61: fatal error: dynamixel_workbench_toolbox/dynamixel_workbench.h: No such file or directory
compilation terminated.

System is Ubuntu 16.04 with ROS Kinetic

I cannot locate the above file in either /opt/ros/* or ~/catkin_ws/src/open_manipulator

Where are the CAD files for open_manipulator?

I see a post a YEAR AGO saying the STL files would be released, but still can't find a way to download the STL files? Can you please post them someplace (NOT OnShape!), where we can download the files? OnShape has the files locked :-(

If this is an OPEN project, please make the files openly available!

Travis failing

Travis fails with robotis_manipulator dependency problems:

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:

open_manipulator_libs: Cannot locate rosdep definition for [robotis_manipulator]
open_manipulator_controller: Cannot locate rosdep definition for [robotis_manipulator]

ici_time:end:156b94b55321a25c:start=1543490803809231452,finish=1543490805488577586,duration=1679346134�[0K
ici_fold:end:rosdep_install<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Function rosdep_install returned with code '1' after 0 min 1 sec

travis_time:end:1f92e828:start=1543490721179475105,finish=1543490805707014621,duration=84527539516
�[0K�[31;1mThe command "source .ci_config/travis.sh" exited with 1.�[0m

Done. Your build exited with 1.

REQUIRED process [open_manipulator_dynamixel_controller-2] has died!

I just tried to operate open manipulator system by using two motor(MX-106).
When I launch that code, the following error occur.

roslaunch open_manipulator_dynamixel_ctrl dynamixel_controller.launch

I already let the USB accss allow, but it is not working too.
What would I do to solve this error??

started roslaunch server http://localhost:*****/

SUMMARY

PARAMETERS

  • /baud_rate: 1000000
  • /device_name: /dev/ttyUSB0
  • /rosdistro: kinetic
  • /rosversion: 1.12.12
  • /scan_range: 10

NODES
/
open_manipulator_dynamixel_controller (open_manipulator_dynamixel_ctrl/dynamixel_controller)

auto-starting new master
process[master]: started with pid [5590]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to *****
process[rosout-1]: started with pid [5603]
started core service [/rosout]
process[open_manipulator_dynamixel_controller-2]: started with pid [5609]
[ INFO] [1520408424.601165791]: open_manipulator_dynamixel_controller : Init OK!
================================================================================REQUIRED process [open_manipulator_dynamixel_controller-2] has died!
process has died [pid 5609, exit code -11, cmd /home/user/catkin_ws/devel/lib/open_manipulator_dynamixel_ctrl/dynamixel_controller __name:=open_manipulator_dynamixel_controller __log:=/home/user/.ros/log/.../open_manipulator_dynamixel_controller-2.log].
log file: /home/user/.ros/log/.../open_manipulator_dynamixel_controller-2*.log
Initiating shutdown!

[open_manipulator_dynamixel_controller-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Build Error Question about master brunch version 1.0.0

Open manipulator master git is updated version 1.0.0 9days ago.
It seems that motion accuracy has improved tremendously. Very Wonderful!.

But there is some build issue.
All git statues is master brunch .
I use below command to download.
$git clone https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
$git clone https://github.com/ROBOTIS-GIT/open_manipulator.git
$git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git

When I build code.
I can see Erro Log about dynamixel-workbench.
Others have written naver cafe about the same build issue.
https://cafe.naver.com/openrt/19443

So I use back up code, the code is hackerton-beta-brunch dynamixel-workbench code.
git clone https://github.com/hyunoklee/dynamixel-workbench.git
git clone https://github.com/hyunoklee/dynamixel-workbench-msgs.git

please check about that.
Thank you.

//////////////////////////ERRO LOG///////////////////////

/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘virtual void DYNAMIXEL::JointDynamixel::enable()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:70:36: error: ‘class DynamixelWorkbench’ has no member named ‘torqueOn’
result = dynamixel_workbench_->torqueOn(dynamixel_.id.at(index), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘virtual void DYNAMIXEL::JointDynamixel::disable()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:85:36: error: ‘class DynamixelWorkbench’ has no member named ‘torqueOff’
result = dynamixel_workbench_->torqueOff(dynamixel_.id.at(index), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::JointDynamixel::initialize(std::vector, STRING, STRING)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:127:34: error: ‘class DynamixelWorkbench’ has no member named ‘init’
result = dynamixel_workbench_->init(dxl_device_name.c_str(), std::atoi(dxl_baud_rate.c_str()), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:137:68: error: no matching function for call to ‘DynamixelWorkbench::ping(uint8_t&, uint16_t*, const char**)’
result = dynamixel_workbench_->ping(id, &get_model_number, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:49:8: note: candidate: bool DynamixelWorkbench::ping(uint8_t, uint16_t*)
bool ping(uint8_t id, uint16_t get_model_number = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:49:8: note: candidate expects 2 arguments, 3 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::JointDynamixel::setOperatingMode(std::vector, STRING)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:168:91: error: no matching function for call to ‘DynamixelWorkbench::jointMode(__gnu_cxx::__alloc_traits<std::allocator >::value_type&, const uint32_t&, const uint32_t&, const char
*)’
result = dynamixel_workbench_->jointMode(actuator_id.at(num), velocity, effort, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate: bool DynamixelWorkbench::jointMode(uint8_t, uint16_t, uint16_t)
bool jointMode(uint8_t id, uint16_t vel = 0, uint16_t acc = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate expects 3 arguments, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:179:38: error: ‘class DynamixelWorkbench’ has no member named ‘CurrentBasedPositionMode’
result = dynamixel_workbench_->CurrentBasedPositionMode(actuator_id.at(num), current, &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:190:91: error: no matching function for call to ‘DynamixelWorkbench::jointMode(gnu_cxx::alloc_traits<std::allocator >::value_type&, const uint32_t&, const uint32_t&, const char**)’
result = dynamixel_workbench
->jointMode(actuator_id.at(num), velocity, effort, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate: bool DynamixelWorkbench::jointMode(uint8_t, uint16_t, uint16_t)
bool jointMode(uint8_t id, uint16_t vel = 0, uint16_t acc = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate expects 3 arguments, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::JointDynamixel::setSDKHandler(uint8_t)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:206:34: error: ‘class DynamixelWorkbench’ has no member named ‘addSyncWriteHandler’
result = dynamixel_workbench
->addSyncWriteHandler(actuator_id, "Goal_Position", &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:212:34: error: ‘class DynamixelWorkbench’ has no member named ‘addSyncReadHandler’
result = dynamixel_workbench
->addSyncReadHandler(ADDR_PRESENT_CURRENT_2,
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::JointDynamixel::writeProfileValue(std::vector, STRING, uint32_t)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:232:36: error: ‘class DynamixelWorkbench’ has no member named ‘writeRegister’
result = dynamixel_workbench->writeRegister(actuator_id.at(num), char_profile_mode, value, &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::JointDynamixel::writeGoalPosition(std::vector, std::vector)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:256:131: error: no matching function for call to ‘DynamixelWorkbench::syncWrite(int, uint8_t [( + 1)], std::vector::size_type, int32_t [( + 1)], const char**)’
result = dynamixel_workbench_->syncWrite(SYNC_WRITE_HANDLER_FOR_GOAL_POSITION, id_array, actuator_id.size(), goal_position, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:73:8: note: candidate: bool DynamixelWorkbench::syncWrite(const char*, int32_t*)
bool syncWrite(const char item_name, int32_t value); // sync write
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:73:8: note: candidate expects 2 arguments, 5 provided
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:74:8: note: candidate: bool DynamixelWorkbench::syncWrite(uint8_t*, uint8_t, const char*, int32_t*)
bool syncWrite(uint8_t id, uint8_t id_num, const char item_name, int32_t data);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:74:8: note: candidate expects 4 arguments, 5 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘std::vector<ROBOTIS_MANIPULATOR::_Point> DYNAMIXEL::JointDynamixel::receiveAllDynamixelValue(std::vector)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:282:47: error: no matching function for call to ‘DynamixelWorkbench::syncRead(int, uint8_t [( + 1)], std::vector::size_type, const char
)’
&log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:79:12: note: candidate: int32_t
DynamixelWorkbench::syncRead(const char*)
int32_t* syncRead(const char* item_name); // sync read
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:79:12: note: candidate expects 1 argument, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:296:36: error: ‘class DynamixelWorkbench’ has no member named ‘getSyncReadData’
result = dynamixel_workbench_->getSyncReadData(SYNC_READ_HANDLER_FOR_PRESENT_POSITION_VELOCITY_CURRENT,
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:309:47: error: ‘class DynamixelWorkbench’ has no member named ‘convertValue2Current’
actuator.effort = dynamixel_workbench_->convertValue2Current(actuator_id.at(index), (uint16_t)get_value[index]);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:312:36: error: ‘class DynamixelWorkbench’ has no member named ‘getSyncReadData’
result = dynamixel_workbench_->getSyncReadData(SYNC_READ_HANDLER_FOR_PRESENT_POSITION_VELOCITY_CURRENT,
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:328:36: error: ‘class DynamixelWorkbench’ has no member named ‘getSyncReadData’
result = dynamixel_workbench_->getSyncReadData(SYNC_READ_HANDLER_FOR_PRESENT_POSITION_VELOCITY_CURRENT,
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘virtual void DYNAMIXEL::GripperDynamixel::enable()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:397:34: error: ‘class DynamixelWorkbench’ has no member named ‘torqueOn’
result = dynamixel_workbench_->torqueOn(dynamixel_.id.at(0), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘virtual void DYNAMIXEL::GripperDynamixel::disable()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:409:34: error: ‘class DynamixelWorkbench’ has no member named ‘torqueOff’
result = dynamixel_workbench_->torqueOff(dynamixel_.id.at(0), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::GripperDynamixel::initialize(uint8_t, STRING, STRING)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:438:34: error: ‘class DynamixelWorkbench’ has no member named ‘init’
result = dynamixel_workbench_->init(dxl_device_name.c_str(), std::atoi(dxl_baud_rate.c_str()), &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:445:83: error: no matching function for call to ‘DynamixelWorkbench::ping(gnu_cxx::alloc_traits<std::allocator >::value_type&, uint16_t*, const char**)’
result = dynamixel_workbench
->ping(dynamixel
.id.at(0), &get_model_number, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:49:8: note: candidate: bool DynamixelWorkbench::ping(uint8_t, uint16_t*)
bool ping(uint8_t id, uint16_t get_model_number = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:49:8: note: candidate expects 2 arguments, 3 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::GripperDynamixel::setOperatingMode(STRING)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:474:89: error: no matching function for call to ‘DynamixelWorkbench::jointMode(__gnu_cxx::__alloc_traits<std::allocator >::value_type&, const uint32_t&, const uint32_t&, const char
*)’
result = dynamixel_workbench
->jointMode(dynamixel
.id.at(0), velocity, effort, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate: bool DynamixelWorkbench::jointMode(uint8_t, uint16_t, uint16_t)
bool jointMode(uint8_t id, uint16_t vel = 0, uint16_t acc = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate expects 3 arguments, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:482:36: error: ‘class DynamixelWorkbench’ has no member named ‘CurrentBasedPositionMode’
result = dynamixel_workbench_->CurrentBasedPositionMode(dynamixel_.id.at(0), current, &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:490:89: error: no matching function for call to ‘DynamixelWorkbench::jointMode(gnu_cxx::alloc_traits<std::allocator >::value_type&, const uint32_t&, const uint32_t&, const char**)’
result = dynamixel_workbench
->jointMode(dynamixel
.id.at(0), velocity, effort, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate: bool DynamixelWorkbench::jointMode(uint8_t, uint16_t, uint16_t)
bool jointMode(uint8_t id, uint16_t vel = 0, uint16_t acc = 0);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:64:8: note: candidate expects 3 arguments, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::GripperDynamixel::writeProfileValue(STRING, uint32_t)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:507:34: error: ‘class DynamixelWorkbench’ has no member named ‘writeRegister’
result = dynamixel_workbench
->writeRegister(dynamixel
.id.at(0), char_profile_mode, value, &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::GripperDynamixel::setSDKHandler()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:521:34: error: ‘class DynamixelWorkbench’ has no member named ‘addSyncWriteHandler’
result = dynamixel_workbench_->addSyncWriteHandler(dynamixel_.id.at(0), "Goal_Position", &log);
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:527:34: error: ‘class DynamixelWorkbench’ has no member named ‘addSyncReadHandler’
result = dynamixel_workbench_->addSyncReadHandler(dynamixel_.id.at(0),
^
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘bool DYNAMIXEL::GripperDynamixel::writeGoalPosition(double)’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:547:102: error: no matching function for call to ‘DynamixelWorkbench::syncWrite(int, int32_t*, const char**)’
result = dynamixel_workbench_->syncWrite(SYNC_WRITE_HANDLER_FOR_GOAL_POSITION, &goal_position, &log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:73:8: note: candidate: bool DynamixelWorkbench::syncWrite(const char*, int32_t*)
bool syncWrite(const char item_name, int32_t value); // sync write
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:73:8: note: candidate expects 2 arguments, 3 provided
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:74:8: note: candidate: bool DynamixelWorkbench::syncWrite(uint8_t*, uint8_t, const char*, int32_t*)
bool syncWrite(uint8_t id, uint8_t id_num, const char item_name, int32_t data);
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:74:8: note: candidate expects 4 arguments, 3 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp: In member function ‘double DYNAMIXEL::GripperDynamixel::receiveDynamixelValue()’:
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:567:47: error: no matching function for call to ‘DynamixelWorkbench::syncRead(int, uint8_t [1], uint8_t, const char
)’
&log);
^
In file included from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/../include/open_manipulator_libs/Dynamixel.h:27:0,
from /home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:19:
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:79:12: note: candidate: int32_t
DynamixelWorkbench::syncRead(const char*)
int32_t* syncRead(const char* item_name); // sync read
^
/home/hyunoklee/catkin_ws/src/dynamixel-workbench/dynamixel_workbench_toolbox/include/dynamixel_workbench_toolbox/dynamixel_workbench.h:79:12: note: candidate expects 1 argument, 4 provided
/home/hyunoklee/catkin_ws/src/open_manipulator/open_manipulator_libs/src/Dynamixel.cpp:573:34: error: ‘class DynamixelWorkbench’ has no member named ‘getSyncReadData’
result = dynamixel_workbench_->getSyncReadData(SYNC_READ_HANDLER_FOR_PRESENT_POSITION_VELOCITY_CURRENT,
^
[ 94%] Built target single_dynamixel_controller
Scanning dependencies of target position_control
[ 94%] Building CXX object dynamixel-workbench/dynamixel_workbench_controllers/CMakeFiles/position_control.dir/src/position_control.cpp.o
open_manipulator/open_manipulator_libs/CMakeFiles/open_manipulator_libs.dir/build.make:110: recipe for target 'open_manipulator/open_manipulator_libs/CMakeFiles/open_manipulator_libs.dir/src/Dynamixel.cpp.o' failed
make[2]: *** [open_manipulator/open_manipulator_libs/CMakeFiles/open_manipulator_libs.dir/src/Dynamixel.cpp.o] Error 1
CMakeFiles/Makefile2:4212: recipe for target 'open_manipulator/open_manipulator_libs/CMakeFiles/open_manipulator_libs.dir/all' failed
make[1]: *** [open_manipulator/open_manipulator_libs/CMakeFiles/open_manipulator_libs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

How to control turtlebot's wheels and manipulator at the same time?

I was trying to teleop turtlebot3's wheels in order to let it move using "roslaunch turtlebot3_teleop keyboard.launch" after running "roslaunch open_manipulator_with_tb3_tools robot.launch". The OpenCR board is uploaded with open_manipulator_with_tb3_core. However, even though I was able to control the manipulator by doing rosserivce call .... I wasn't able to let the turtlebot's wheels moving using the above command. Since that command is not actually designed for turtlebot with manipulator, I wonder if there is a better way to control manipulator and turtlebot's wheels (via keyboard..etc).

Questions about open_manipulator on turtlebot3

Dear Robotis Representative,

My team recently purchased a turtlebot3 from Robotis and the package came with a intel joule 570x board and OpenCR 1.0 board. In addition to that, we have reproduced and assembled an open-manipulator using five Dynamixel X-series servos. Now, we are trying to control the open-manipulator using the OpenCR 1.0 board and we are having some difficulties. First, we are not sure if we need to upload new Arduino code into the OpenCR 1.0 board in order to control the open-manipulator. Second, we have set the dynamixel servos to position control mode, 1000000 baudrate and ID numbers of 3,4,5,6,7 (one ID number for each of the five dynamixel servos), and we are not sure if we are setting these parameters correctly. Lastly, would there be a more detailed guideline on how to control the open-manipulator? We have followed this website : http://turtlebot3.readthedocs.io/en/latest/manipulation.html and it did not work very well. Thank you for your help and time in advance!

SIncerely,

Hong

Errors that occur while running Gazebo : No P gain ~

Hello~ I installed the following packages in the Ubuntu 18.04 environment and then launched the Gazebo

$ sudo apt-get install ros-melodic-ros-controllers ros-melodic-gazebo* ros-melodic-moveit*
$ cd ~/catkin_ws/src
$ git clone -b kinetic https://github.com/ros-industrial/industrial_core.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$ sb & cm
$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

SUMMARY

PARAMETERS

  • /gazebo/enable_ros_network: True
  • /gazebo_ros_control/pid_gains/gripper/antiwindup: False
  • /gazebo_ros_control/pid_gains/gripper/d: 500.0
  • /gazebo_ros_control/pid_gains/gripper/i: 1000.0
  • /gazebo_ros_control/pid_gains/gripper/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/gripper/p: 100000.0
  • /gazebo_ros_control/pid_gains/gripper/publish_state: True
  • /gazebo_ros_control/pid_gains/gripper_sub/antiwindup: False
  • /gazebo_ros_control/pid_gains/gripper_sub/d: 1000.0
  • /gazebo_ros_control/pid_gains/gripper_sub/i: 250.0
  • /gazebo_ros_control/pid_gains/gripper_sub/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/gripper_sub/p: 100000.0
  • /gazebo_ros_control/pid_gains/gripper_sub/publish_state: True
  • /gazebo_ros_control/pid_gains/joint1/antiwindup: False
  • /gazebo_ros_control/pid_gains/joint1/d: 100.0
  • /gazebo_ros_control/pid_gains/joint1/i: 1000.0
  • /gazebo_ros_control/pid_gains/joint1/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/joint1/p: 100000.0
  • /gazebo_ros_control/pid_gains/joint1/publish_state: True
  • /gazebo_ros_control/pid_gains/joint2/antiwindup: False
  • /gazebo_ros_control/pid_gains/joint2/d: 500.0
  • /gazebo_ros_control/pid_gains/joint2/i: 1000.0
  • /gazebo_ros_control/pid_gains/joint2/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/joint2/p: 100000.0
  • /gazebo_ros_control/pid_gains/joint2/publish_state: True
  • /gazebo_ros_control/pid_gains/joint3/antiwindup: False
  • /gazebo_ros_control/pid_gains/joint3/d: 500.0
  • /gazebo_ros_control/pid_gains/joint3/i: 1000.0
  • /gazebo_ros_control/pid_gains/joint3/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/joint3/p: 100000.0
  • /gazebo_ros_control/pid_gains/joint3/publish_state: True
  • /gazebo_ros_control/pid_gains/joint4/antiwindup: False
  • /gazebo_ros_control/pid_gains/joint4/d: 500.0
  • /gazebo_ros_control/pid_gains/joint4/i: 1000.0
  • /gazebo_ros_control/pid_gains/joint4/i_clamp: 0.2
  • /gazebo_ros_control/pid_gains/joint4/p: 100000.0
  • /gazebo_ros_control/pid_gains/joint4/publish_state: True
  • /open_manipulator/gripper_position/joint: gripper
  • /open_manipulator/gripper_position/type: position_controll...
  • /open_manipulator/gripper_sub_position/joint: gripper_sub
  • /open_manipulator/gripper_sub_position/type: position_controll...
  • /open_manipulator/joint1_position/joint: joint1
  • /open_manipulator/joint1_position/type: position_controll...
  • /open_manipulator/joint2_position/joint: joint2
  • /open_manipulator/joint2_position/type: position_controll...
  • /open_manipulator/joint3_position/joint: joint3
  • /open_manipulator/joint3_position/type: position_controll...
  • /open_manipulator/joint4_position/joint: joint4
  • /open_manipulator/joint4_position/type: position_controll...
  • /open_manipulator/joint_state_controller/publish_rate: 1000
  • /open_manipulator/joint_state_controller/type: joint_state_contr...
  • /robot_description: <?xml version="1....
  • /rosdistro: melodic
  • /rosversion: 1.14.3
  • /use_sim_time: True

NODES
/
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
urdf_spawner (gazebo_ros/spawn_model)
/open_manipulator/
controller_spawner (controller_manager/spawner)
gripper_sub_publisher (open_manipulator_gazebo/gripper_sub_publisher)

auto-starting new master
process[master]: started with pid [7651]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to aa6a9d54-64d6-11e9-84ad-e82a448a8dc5
process[rosout-1]: started with pid [7662]
started core service [/rosout]
process[gazebo-2]: started with pid [7669]
process[gazebo_gui-3]: started with pid [7674]
process[urdf_spawner-4]: started with pid [7679]
process[open_manipulator/controller_spawner-5]: started with pid [7680]
process[open_manipulator/gripper_sub_publisher-6]: started with pid [7681]
[INFO] [1555920877.705735, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
[ INFO] [1555920877.985260193]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1555920877.986951011]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1555920878.060406160]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1555920878.062113348]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[INFO] [1555920878.297025, 0.000000]: Loading model XML from ros parameter robot_description
[INFO] [1555920878.313919, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[INFO] [1555920878.618052, 0.000000]: Calling service /gazebo/spawn_urdf_model
[INFO] [1555920878.918211, 0.000000]: Spawn status: SpawnModel: Successfully spawned entity
[ INFO] [1555920879.083849301]: Loading gazebo_ros_control plugin
[ INFO] [1555920879.084073021]: Starting gazebo_ros_control plugin in namespace: open_manipulator
[ INFO] [1555920879.084658127]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
[urdf_spawner-4] process has finished cleanly
log file: /home/whehddns2/.ros/log/aa6a9d54-64d6-11e9-84ad-e82a448a8dc5/urdf_spawner-4*.log
[ERROR] [1555920879.206903100]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/joint1
[ERROR] [1555920879.208206473]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/joint2
[ERROR] [1555920879.209289278]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/joint3
[ERROR] [1555920879.210309576]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/joint4
[ERROR] [1555920879.211646010]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/gripper
[ERROR] [1555920879.212790568]: No p gain specified for pid. Namespace: /open_manipulator/gazebo_ros_control/pid_gains/gripper_sub

[ INFO] [1555920879.220204426]: Loaded gazebo_ros_control.
[INFO] [1555920879.522182, 0.000000]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1555920879.532287, 0.000000]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1555920879.546549, 0.000000]: Loading controller: joint_state_controller
[INFO] [1555920879.589858, 0.000000]: Loading controller: joint1_position
[INFO] [1555920879.645711, 0.000000]: Loading controller: joint2_position
[INFO] [1555920879.678206, 0.000000]: Loading controller: joint3_position
[INFO] [1555920879.727092, 0.000000]: Loading controller: joint4_position
[INFO] [1555920879.764402, 0.000000]: Loading controller: gripper_position
[INFO] [1555920879.797502, 0.000000]: Loading controller: gripper_sub_position
[INFO] [1555920879.835591, 0.000000]: Controller Spawner: Loaded controllers: joint_state_controller, joint1_position, joint2_position, joint3_position, joint4_position, gripper_position, gripper_sub_position

There's no problem running Gazebo yet, Can you tell me which file is relevant and how to fix it?

CAD data of open_manipulator.

Hi, Lim-san. I have questions.

(1) Is CAD data of open_manipulator exposed on OnShape?

(2) The shape of the end effector of the manipulator changes according to the application.
Can you Branch data of user created frame or end effector?

Consider Including URDF file in addition to XACRO

Hello all,

I maintain another repository that uses the URDF/XACRO files in this one: https://www.mathworks.com/matlabcentral/fileexchange/65316-designing-robot-manipulator-algorithms

Right now, I have a script that takes the XACRO file and converts it to URDF with a few hard-coded changes, e.g., replacing expressions like "${PI}" with "3.1416"

Would it be possible to include an automatically generated URDF version of the XACRO file as well? You can do this with the "xacro" ROS package:

http://wiki.ros.org/xacro

Thanks, and happy to help with this as needed.

Request to add the "RAIL BLOCK" stl file to Thingiverse and a question about the "part lists" section in the e-manual

Thanks @routiful for your quick response and updating 3d part model names in Thingsverse already!

I started to work on it and noticed the "RAIL BLOCK" part mentioned in "Assembly Manual" is missing. Can you add this part to Thingiverse as well?

One quick question: I also noticed the "part lists" section in the e-manual is still not matching with the part list in the Assembly Manual. Based on @routiful 's 3rd response item at discourse.ros (The spreadsheet will be deleted, I have a plan to move it in e-manual.), Assembly Manual is the most up to date document, so I'll continue working with the Assembly Manual, ignoring additional parts mentioned in the e-manual.

Joints position are not in sync with simulations

Hello everyone, I was able to control each joint of the open manipulator after I connected the gripper motor to the chain. However, in the simulations(Processing, Rviz), the joints positions are definitely not synced. There is a difference in joint 3(the third actuator counted from the base). Is it a software issue or is it a issue that can be solved by doing calibration with R+ manager?

image

below shows the offset between the actual pose and the wrong calculated pose.

image

Also, since I couldn't find my calibration adapter, I wonder if there is a STL file that allows me to 3D print it. Thanks in advance.

[devel] Do not disable torque on shutdown

Sometimes disabling the torque fails on open_manipulator_controller shutdown:

[INFO] Shutdown the OpenManipulator
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Any ideas on what may be causing this?
@t-kitajima

open_manipulator_dynamixel_controller error message

Hi~
I beginner of ROS.
open_manipulator package is a great reference to start manipulator!
Thanks for ROBOTIS team!

When I follwed dynamixel control example, there is a error as below.


PARAMETERS

  • /baud_rate: 57600
  • /device_name: /dev/ttyUSB0
  • /protocol_version: 1.0
  • /rosdistro: kinetic
  • /rosversion: 1.12.7

NODES
/open_manipulator_dynamixel_controller (open_manipulator_dynamixel_ctrl/dynamixel_controller)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[open_manipulator_dynamixel_controller-1]: started with pid [11056]
[ INFO] [1505028572.635044008]: Succeeded to open the port( /dev/ttyUSB0)!
[ INFO] [1505028572.637931777]: Succeeded to change the baudrate(57600)!
[ INFO] [1505028572.718853873]: open_manipulator_dynamixel_controller : Init OK!
[ERROR] [15050228572.718904905]: Sync Read Failed!
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= the->size() (which is 0)


"Sync Read Failed!" error message generated from

from "Dynamixel_controller.cpp"
bool DynamixelController::readDynamixelState(void) function

So I made that comment out error generated function.

bool DynamixelController::control_loop()
{
// Read & Publish Dynamixel position
//readDynamixelState(); //comment out to avoid error message
}

Then it works. so when I click "Plan&Execute" in MoveIt, my dynamixel rotating.

Is this correct way?
If I delete readDynamixelState(); , there is no side-effect?

actually, I had only 3 dynamixel, so I changed MAX_DXL_NUM to 3
is this cause of this error message?

from dynamixel_controller.h file
#define MOTOR (0)
#define MAX_DXL_NUM (3) //5
#define ITERATION_FREQUENCY (25)

Distinct world coordinates?

Hello all,

Is there a reason to have different world coordinates for the urdf (open_manipulator.urdf.xacro) and om_chain (om_chain.cpp) ?

I understand that in the om_chain the X axis origin is aligned to the manipulator in the zero angle position, but wouldn't it be better to unify with the urdf origin? Having the same world coordinates should also abbreviate some coordinate transforms when e.g. getting the target object coordinates from vision -> solving the IK through goal_task_space_path service.

world

[betaTest][5.Bringup]About sample code

hi,

I build an OpenManipulator according to e-manual.
http://emanual.robotis.com/docs/en/platform/openmanipulator/#hardware-setup

The Dynamixel ID of sample code (5.Bringup) is still 1 to 5.
The Dynamixel ID of master code is 11 to 15.

When assembling according to 3.3.Assembly Manual, if Dyanamixel ID of .launch file is 1 to 5, an error will result.

[ERROR] [1539839180.453643113]: Not found Joints, Please check id and baud rate
REQUIRED process [dynamixel_controller-2] has died!
process has finished cleanly
log file: /home/kitajima/.ros/log/8ca3ba38-d293-11e8-9bf1-d46d6d3132ab/dynamixel_controller-2*.log
Initiating shutdown!

I propose to change the ID of sample code of 5.Bringup to 11 ~ 15.

Are there any inverse kinematics equations for the OpenManipulator Link?

I am currently working on the OpenManipulator Link and I saw this youtube video here:https://www.youtube.com/watch?v=WR9_1AheOok

I was wondering if you have the inverse kinematic equations for this particular robotic arm? I tried to use these equations from the robotis website (http://emanual.robotis.com/docs/en/software/rplus1/motion/#inverse-kinematics) but I did not get the correct results for the joint angles since the OpenManipulator Link model has a different design.
image

Thank you very much for your help

About open_manipulator/option topic

If the /open_manipulator/option only answers to string data equal to "print_open_manipulator_setting", why don't we have it setted as an empty type topic or service?

Are there any plans to add other accepted commands to this topic?

Open Manipulator Controller with MoveIt option

Hello

I try to launch Open Manipulator Controller with MoveIt Option. I follow the instructions on your e-manual page for Open Manipulator. However when I run he following command:

roslaunch open_manipulator_controller open_manipulator_controller.launch use_moveit:=true

I get the error:

started roslaunch server http://robut-linux-1:36685/

SUMMARY
========

PARAMETERS
 * /move_group/allow_trajectory_execution: False
 * /move_group/arm/default_planner_config: RRTConnect
 * /move_group/arm/longest_valid_segment_fraction: 0.005
 * /move_group/arm/planner_configs: ['SBL', 'EST', 'L...
 * /move_group/arm/projection_evaluator: joints(joint1,joi...
 * /move_group/capabilities: 
 * /move_group/disable_capabilities: 
 * /move_group/jiggle_fraction: 0.05
 * /move_group/max_safe_path_cost: 1
 * /move_group/planner_configs/BFMT/balanced: 0
 * /move_group/planner_configs/BFMT/cache_cc: 1
 * /move_group/planner_configs/BFMT/extended_fmt: 1
 * /move_group/planner_configs/BFMT/heuristics: 1
 * /move_group/planner_configs/BFMT/nearest_k: 1
 * /move_group/planner_configs/BFMT/num_samples: 1000
 * /move_group/planner_configs/BFMT/optimality: 1
 * /move_group/planner_configs/BFMT/radius_multiplier: 1.0
 * /move_group/planner_configs/BFMT/type: geometric::BFMT
 * /move_group/planner_configs/BKPIECE/border_fraction: 0.9
 * /move_group/planner_configs/BKPIECE/failed_expansion_score_factor: 0.5
 * /move_group/planner_configs/BKPIECE/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/BKPIECE/range: 0.0
 * /move_group/planner_configs/BKPIECE/type: geometric::BKPIECE
 * /move_group/planner_configs/BiEST/range: 0.0
 * /move_group/planner_configs/BiEST/type: geometric::BiEST
 * /move_group/planner_configs/BiTRRT/cost_threshold: 1e300
 * /move_group/planner_configs/BiTRRT/frountier_node_ratio: 0.1
 * /move_group/planner_configs/BiTRRT/frountier_threshold: 0.0
 * /move_group/planner_configs/BiTRRT/init_temperature: 100
 * /move_group/planner_configs/BiTRRT/range: 0.0
 * /move_group/planner_configs/BiTRRT/temp_change_factor: 0.1
 * /move_group/planner_configs/BiTRRT/type: geometric::BiTRRT
 * /move_group/planner_configs/EST/goal_bias: 0.05
 * /move_group/planner_configs/EST/range: 0.0
 * /move_group/planner_configs/EST/type: geometric::EST
 * /move_group/planner_configs/FMT/cache_cc: 1
 * /move_group/planner_configs/FMT/extended_fmt: 1
 * /move_group/planner_configs/FMT/heuristics: 0
 * /move_group/planner_configs/FMT/nearest_k: 1
 * /move_group/planner_configs/FMT/num_samples: 1000
 * /move_group/planner_configs/FMT/radius_multiplier: 1.1
 * /move_group/planner_configs/FMT/type: geometric::FMT
 * /move_group/planner_configs/KPIECE/border_fraction: 0.9
 * /move_group/planner_configs/KPIECE/failed_expansion_score_factor: 0.5
 * /move_group/planner_configs/KPIECE/goal_bias: 0.05
 * /move_group/planner_configs/KPIECE/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/KPIECE/range: 0.0
 * /move_group/planner_configs/KPIECE/type: geometric::KPIECE
 * /move_group/planner_configs/LBKPIECE/border_fraction: 0.9
 * /move_group/planner_configs/LBKPIECE/min_valid_path_fraction: 0.5
 * /move_group/planner_configs/LBKPIECE/range: 0.0
 * /move_group/planner_configs/LBKPIECE/type: geometric::LBKPIECE
 * /move_group/planner_configs/LBTRRT/epsilon: 0.4
 * /move_group/planner_configs/LBTRRT/goal_bias: 0.05
 * /move_group/planner_configs/LBTRRT/range: 0.0
 * /move_group/planner_configs/LBTRRT/type: geometric::LBTRRT
 * /move_group/planner_configs/LazyPRM/range: 0.0
 * /move_group/planner_configs/LazyPRM/type: geometric::LazyPRM
 * /move_group/planner_configs/LazyPRMstar/type: geometric::LazyPR...
 * /move_group/planner_configs/PDST/type: geometric::PDST
 * /move_group/planner_configs/PRM/max_nearest_neighbors: 10
 * /move_group/planner_configs/PRM/type: geometric::PRM
 * /move_group/planner_configs/PRMstar/type: geometric::PRMstar
 * /move_group/planner_configs/ProjEST/goal_bias: 0.05
 * /move_group/planner_configs/ProjEST/range: 0.0
 * /move_group/planner_configs/ProjEST/type: geometric::ProjEST
 * /move_group/planner_configs/RRT/goal_bias: 0.05
 * /move_group/planner_configs/RRT/range: 0.0
 * /move_group/planner_configs/RRT/type: geometric::RRT
 * /move_group/planner_configs/RRTConnect/range: 0.0
 * /move_group/planner_configs/RRTConnect/type: geometric::RRTCon...
 * /move_group/planner_configs/RRTstar/delay_collision_checking: 1
 * /move_group/planner_configs/RRTstar/goal_bias: 0.05
 * /move_group/planner_configs/RRTstar/range: 0.0
 * /move_group/planner_configs/RRTstar/type: geometric::RRTstar
 * /move_group/planner_configs/SBL/range: 0.0
 * /move_group/planner_configs/SBL/type: geometric::SBL
 * /move_group/planner_configs/SPARS/dense_delta_fraction: 0.001
 * /move_group/planner_configs/SPARS/max_failures: 1000
 * /move_group/planner_configs/SPARS/sparse_delta_fraction: 0.25
 * /move_group/planner_configs/SPARS/stretch_factor: 3.0
 * /move_group/planner_configs/SPARS/type: geometric::SPARS
 * /move_group/planner_configs/SPARStwo/dense_delta_fraction: 0.001
 * /move_group/planner_configs/SPARStwo/max_failures: 5000
 * /move_group/planner_configs/SPARStwo/sparse_delta_fraction: 0.25
 * /move_group/planner_configs/SPARStwo/stretch_factor: 3.0
 * /move_group/planner_configs/SPARStwo/type: geometric::SPARStwo
 * /move_group/planner_configs/STRIDE/degree: 16
 * /move_group/planner_configs/STRIDE/estimated_dimension: 0.0
 * /move_group/planner_configs/STRIDE/goal_bias: 0.05
 * /move_group/planner_configs/STRIDE/max_degree: 18
 * /move_group/planner_configs/STRIDE/max_pts_per_leaf: 6
 * /move_group/planner_configs/STRIDE/min_degree: 12
 * /move_group/planner_configs/STRIDE/min_valid_path_fraction: 0.2
 * /move_group/planner_configs/STRIDE/range: 0.0
 * /move_group/planner_configs/STRIDE/type: geometric::STRIDE
 * /move_group/planner_configs/STRIDE/use_projected_distance: 0
 * /move_group/planner_configs/TRRT/frountierNodeRatio: 0.1
 * /move_group/planner_configs/TRRT/frountier_threshold: 0.0
 * /move_group/planner_configs/TRRT/goal_bias: 0.05
 * /move_group/planner_configs/TRRT/init_temperature: 10e-6
 * /move_group/planner_configs/TRRT/k_constant: 0.0
 * /move_group/planner_configs/TRRT/max_states_failed: 10
 * /move_group/planner_configs/TRRT/min_temperature: 10e-10
 * /move_group/planner_configs/TRRT/range: 0.0
 * /move_group/planner_configs/TRRT/temp_change_factor: 2.0
 * /move_group/planner_configs/TRRT/type: geometric::TRRT
 * /move_group/planning_plugin: ompl_interface/OM...
 * /move_group/planning_scene_monitor/publish_geometry_updates: True
 * /move_group/planning_scene_monitor/publish_planning_scene: True
 * /move_group/planning_scene_monitor/publish_state_updates: True
 * /move_group/planning_scene_monitor/publish_transforms_updates: True
 * /move_group/request_adapters: industrial_trajec...
 * /move_group/sample_duration: 0.05
 * /move_group/smoothing_5_coef: [0.25, 0.5, 1.0, ...
 * /move_group/smoothing_filter_name: /move_group/smoot...
 * /move_group/start_state_max_bounds_error: 0.1
 * /open_manipulator/control_period: 0.01
 * /open_manipulator/moveit_sample_duration: 0.05
 * /open_manipulator/planning_group_name: arm
 * /open_manipulator/using_moveit: True
 * /open_manipulator/using_platform: True
 * /robot_description: <?xml version="1....
 * /robot_description_kinematics/arm/kinematics_solver: kdl_kinematics_pl...
 * /robot_description_kinematics/arm/kinematics_solver_attempts: 3
 * /robot_description_kinematics/arm/kinematics_solver_search_resolution: 0.005
 * /robot_description_kinematics/arm/kinematics_solver_timeout: 0.005
 * /robot_description_kinematics/arm/position_only_ik: False
 * /robot_description_planning/joint_limits/joint1/has_acceleration_limits: False
 * /robot_description_planning/joint_limits/joint1/has_velocity_limits: True
 * /robot_description_planning/joint_limits/joint1/max_acceleration: 0
 * /robot_description_planning/joint_limits/joint1/max_velocity: 4.8
 * /robot_description_planning/joint_limits/joint2/has_acceleration_limits: False
 * /robot_description_planning/joint_limits/joint2/has_velocity_limits: True
 * /robot_description_planning/joint_limits/joint2/max_acceleration: 0
 * /robot_description_planning/joint_limits/joint2/max_velocity: 4.8
 * /robot_description_planning/joint_limits/joint3/has_acceleration_limits: False
 * /robot_description_planning/joint_limits/joint3/has_velocity_limits: True
 * /robot_description_planning/joint_limits/joint3/max_acceleration: 0
 * /robot_description_planning/joint_limits/joint3/max_velocity: 4.8
 * /robot_description_planning/joint_limits/joint4/has_acceleration_limits: False
 * /robot_description_planning/joint_limits/joint4/has_velocity_limits: True
 * /robot_description_planning/joint_limits/joint4/max_acceleration: 0
 * /robot_description_planning/joint_limits/joint4/max_velocity: 4.8
 * /robot_description_semantic: <?xml version="1....
 * /rosdistro: kinetic
 * /rosversion: 1.12.13
 * /rviz_robut_linux_1_31430_7019979553358795822/arm/kinematics_solver: kdl_kinematics_pl...
 * /rviz_robut_linux_1_31430_7019979553358795822/arm/kinematics_solver_attempts: 3
 * /rviz_robut_linux_1_31430_7019979553358795822/arm/kinematics_solver_search_resolution: 0.005
 * /rviz_robut_linux_1_31430_7019979553358795822/arm/kinematics_solver_timeout: 0.005
 * /rviz_robut_linux_1_31430_7019979553358795822/arm/position_only_ik: False

NODES
  /
    move_group (moveit_ros_move_group/move_group)
    open_manipulator (open_manipulator_controller/open_manipulator_controller)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    rviz_robut_linux_1_31430_7019979553358795822 (rviz/rviz)

ROS_MASTER_URI=http://localhost:11311

process[robot_state_publisher-1]: started with pid [31450]
process[move_group-2]: started with pid [31451]
process[rviz_robut_linux_1_31430_7019979553358795822-3]: started with pid [31453]
process[open_manipulator-4]: started with pid [31464]
[ INFO] [1546259564.320588893]: rviz version 1.12.16
[ INFO] [1546259564.320645622]: compiled against Qt version 5.5.1
[ INFO] [1546259564.320660222]: compiled against OGRE version 1.9.0 (Ghadamon)
Joint Dynamixel ID : 11, Model Name : XH430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XH430-W350
[move_group-2] process has died [pid 31451, exit code -11, cmd /opt/ros/kinetic/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/fatih/.ros/log/6cfd1c8a-0cf7-11e9-a895-7cb0c2fe1875/move_group-2.log].
log file: /home/fatih/.ros/log/6cfd1c8a-0cf7-11e9-a895-7cb0c2fe1875/move_group-2*.log
Gripper Dynamixel ID : 15, Model Name :XM430-W210



[ INFO] [1546259564.901577411]: Stereo is NOT SUPPORTED
[ INFO] [1546259564.901652515]: OpenGl version: 3 (GLSL 1.3).
[rviz_robut_linux_1_31430_7019979553358795822-3] process has died [pid 31453, exit code -11, cmd /opt/ros/kinetic/lib/rviz/rviz -d /home/fatih/WORKSPACES/ws_open_manipulator/src/open_manipulator/open_manipulator_moveit/launch/moveit.rviz __name:=rviz_robut_linux_1_31430_7019979553358795822 __log:=/home/fatih/.ros/log/6cfd1c8a-0cf7-11e9-a895-7cb0c2fe1875/rviz_robut_linux_1_31430_7019979553358795822-3.log].
log file: /home/fatih/.ros/log/6cfd1c8a-0cf7-11e9-a895-7cb0c2fe1875/rviz_robut_linux_1_31430_7019979553358795822-3*.log

Looks like ROS nodes are dying after started.
Can you help with this error?

Gripper Open/Close Button does not work at open_manipulator_control_gui

I am sorry to write an issue oftenly .
but Gripper Open/Close Button does not work. Always Gripper is Close state.
I use master-branch.
It seems to be a simple parameter tuning problem. Just be to refer.

I modified the parameter as follows. So Gripper Operating is OK.
open_manipulator_control_gui/src/main_window.cpp

void MainWindow::on_btn_gripper_open_clicked(void)
{
std::vector joint_angle;
//joint_angle.push_back(0.01);
joint_angle.push_back(-0.052);

void MainWindow::on_btn_gripper_close_clicked(void)
{
std::vector joint_angle;
//joint_angle.push_back(-0.01);
joint_angle.push_back(-0.042);

open_manipulator_libs/src/OpenManipulator.cpp

// 0.010, // max gripper limit (0.01 m)
// -0.010, // min gripper limit (-0.01 m)
0.100, // max gripper limit (0.01 m)
-0.100, // min gripper limit (-0.01 m)

Unable to control Open manipulator via OpenCR

Hello, I was following the emanual on your website in order to get the manipulator working. Everything seems fine before step 8.4, Basic Manipulation on OpenCR (http://emanual.robotis.com/docs/en/platform/openmanipulator/#basic-manipulation-on-opencr). The only issue happened was in the step 4 I wasn't able to launch the open manipulator controller in terminal. The error I got is "[PortHandlerLinux::SetupPort] Error opening serial port!".

Since I couldn't solve it, I move on to step 8 because I am pretty sure every package has been successfully installed and compiled. However, in step 8.4, after I run the chain.pde code in processing, the manipulator doesn't move at all and all the motors are loose no matter how I change the setting in control panel(controller is on). The console showed that "OpenManipulator Ready!!!" but it doesn't work at all. There were also two error messages between "[32] "/dev/ttyS31" and the "OpenManipulator Ready!!!" message. My initial guess was that some connection issue with the port cause this but I was able to upload the open manipulator chain code from arduino IDE to opencr and no error showed up. So I don't know what could cause this.

Do you have any suggestions? Thanks in advance.

Turtlebot3+OpenManipulator : XM430-W350-T or XM430-W350-R ?

I am making an OpenManipulator in Japan.
Questions when installing OpenManipulator on Turtlebot3.

Actuator of Turtlebot3 is XL430-W250-T and XM430-W210-T. This is a TTL model.
OpenManipulator is XM430-W350-R. This is the RS485 model.
Even when installing OpenManipulator on TB3, is RS485 model official recommended?
Are there any issue when using the TTL model?

dsc_2689

[checkLimit] question

I do not know if this is an issue. Just refer to it.
CheckLimit function is added at this time updated open manipulator code.
At start time, There is no problem if Open Manipulator's joint position is within range.
But At start time, There is problem if Open Manipulator's joint position is not within range.
If Open Manipulator's joint position is not within range at start time.
like below picture. ( J1 : -0.078, J2 : -2.088, J3 : 1.531, J4 : 0.623 )
https://github.com/hyunoklee/pcsetting/blob/master/20181204_212515.jpg?raw=true
Then I can see the following Error log and anymore I can not control open manipulator by GUI tool .
Init pose button and Home pose button also do not work and print log about checkLimit.
/////////////ERRO LOG////////////////////////////////////////////////////////////////////////////////////
ROS_MASTER_URI=http://localhost:11311

process[open_manipulator_controller-1]: started with pid [2152]
Joint Dynamixel ID : 11, Model Name : XM430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XM430-W350
Gripper Dynamixel ID : 15, Model Name :XM430-W350
[INFO] Successed to OpenManipulator initialization
[ERROR] [checkLimit] Goal value exceeded limit at joint2.
[ERROR] [checkLimit] Goal value exceeded limit at joint2.
[ERROR] [checkLimit] Goal value exceeded limit at joint2.

I think this checklimit function is really important function.
If there is not checklimit function in code, OpenManipulator is expected to break down quickly.
(⌒▽⌒ )b

xl430

I am using 5 xl430 for openmanipulator and I want to control it with opencr and processing. it happens that only the gripper works with the gui but the other joints do not respond. And what does the following error mean? Thanks.
[ERROR] [DynamixelWorkbench] Failed to set Current Based Position Control Mode!

Controlling real hardware

I have a 6 DOF manipulator made of dynamixel MX servos. I have modified the open manipulator code such that it can read the current states of the actuators and can visualize the manipulator current configuration in the RVIZ. I have also configured the arm with moveit.I can execute fake joint trajectory execution in moveit.
Then I also configured open manipulator position control code by changing the number of joints and also updated the joint names.
Generally moveit searches for controllers in controllers.yaml file . Then it sends the trajectory through action client interface which is configured in that. But in the open manipulator code, trajectory execution is through the position_controller node. Then whenever I try to plan and execute in moveit, the node crashes throwing the error

[ERROR] [1505907451.220483043]: Unable to identify any set of controllers that can actuate the specified joints: [ joint1 joint2 joint3 joint4 joint5 joint6 ]
[ERROR] [1505907451.220602981]: Known controllers and their joints:
[ERROR] [1505907451.220710063]: Apparently trajectory initialization failed
[ INFO] [1505907451.227786522]: ABORTED: Solution found but controller failed during execution
position_controller: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:413: Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator()(Eigen::Index) [with Derived = Eigen::Matrix<double, -1, 1>; Eigen::DenseCoeffsBase<Derived, 1>::Scalar = double; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed.

How to solve this issue?

MoveIT Controller Issue

Hello
When I try to launch open_manipulator_moveit_controller via following command on Ubuntu 16.04:
roslaunch open_manipulator_moveit_controller open_manipulator_moveit.launch

I get following error:

started roslaunch server http://robut-linux-1:40703/

SUMMARY

PARAMETERS

  • /arm_controller/init_position: False
  • /gazebo: False
  • /joint_state_publisher/source_list: ['open_manipulato...
  • /joint_state_publisher/use_gui: False
  • /move_group/allow_trajectory_execution: False
  • /move_group/arm/default_planner_config: RRTConnect
  • /move_group/arm/longest_valid_segment_fraction: 0.005
  • /move_group/arm/planner_configs: ['SBL', 'EST', 'L...
  • /move_group/arm/projection_evaluator: joints(joint1,joi...
  • /move_group/capabilities:
  • /move_group/disable_capabilities:
  • /move_group/gripper/default_planner_config:
  • /move_group/gripper/longest_valid_segment_fraction: 0.005
  • /move_group/gripper/planner_configs: ['SBL', 'EST', 'L...
  • /move_group/gripper/projection_evaluator: joints(grip_joint...
  • /move_group/jiggle_fraction: 0.05
  • /move_group/max_safe_path_cost: 1
  • /move_group/planner_configs/BFMT/balanced: 0
  • /move_group/planner_configs/BFMT/cache_cc: 1
  • /move_group/planner_configs/BFMT/extended_fmt: 1
  • /move_group/planner_configs/BFMT/heuristics: 1
  • /move_group/planner_configs/BFMT/nearest_k: 1
  • /move_group/planner_configs/BFMT/num_samples: 1000
  • /move_group/planner_configs/BFMT/optimality: 1
  • /move_group/planner_configs/BFMT/radius_multiplier: 1.0
  • /move_group/planner_configs/BFMT/type: geometric::BFMT
  • /move_group/planner_configs/BKPIECE/border_fraction: 0.9
  • /move_group/planner_configs/BKPIECE/failed_expansion_score_factor: 0.5
  • /move_group/planner_configs/BKPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/BKPIECE/range: 0.0
  • /move_group/planner_configs/BKPIECE/type: geometric::BKPIECE
  • /move_group/planner_configs/BiEST/range: 0.0
  • /move_group/planner_configs/BiEST/type: geometric::BiEST
  • /move_group/planner_configs/BiTRRT/cost_threshold: 1e300
  • /move_group/planner_configs/BiTRRT/frountier_node_ratio: 0.1
  • /move_group/planner_configs/BiTRRT/frountier_threshold: 0.0
  • /move_group/planner_configs/BiTRRT/init_temperature: 100
  • /move_group/planner_configs/BiTRRT/range: 0.0
  • /move_group/planner_configs/BiTRRT/temp_change_factor: 0.1
  • /move_group/planner_configs/BiTRRT/type: geometric::BiTRRT
  • /move_group/planner_configs/EST/goal_bias: 0.05
  • /move_group/planner_configs/EST/range: 0.0
  • /move_group/planner_configs/EST/type: geometric::EST
  • /move_group/planner_configs/FMT/cache_cc: 1
  • /move_group/planner_configs/FMT/extended_fmt: 1
  • /move_group/planner_configs/FMT/heuristics: 0
  • /move_group/planner_configs/FMT/nearest_k: 1
  • /move_group/planner_configs/FMT/num_samples: 1000
  • /move_group/planner_configs/FMT/radius_multiplier: 1.1
  • /move_group/planner_configs/FMT/type: geometric::FMT
  • /move_group/planner_configs/KPIECE/border_fraction: 0.9
  • /move_group/planner_configs/KPIECE/failed_expansion_score_factor: 0.5
  • /move_group/planner_configs/KPIECE/goal_bias: 0.05
  • /move_group/planner_configs/KPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/KPIECE/range: 0.0
  • /move_group/planner_configs/KPIECE/type: geometric::KPIECE
  • /move_group/planner_configs/LBKPIECE/border_fraction: 0.9
  • /move_group/planner_configs/LBKPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/LBKPIECE/range: 0.0
  • /move_group/planner_configs/LBKPIECE/type: geometric::LBKPIECE
  • /move_group/planner_configs/LBTRRT/epsilon: 0.4
  • /move_group/planner_configs/LBTRRT/goal_bias: 0.05
  • /move_group/planner_configs/LBTRRT/range: 0.0
  • /move_group/planner_configs/LBTRRT/type: geometric::LBTRRT
  • /move_group/planner_configs/LazyPRM/range: 0.0
  • /move_group/planner_configs/LazyPRM/type: geometric::LazyPRM
  • /move_group/planner_configs/LazyPRMstar/type: geometric::LazyPR...
  • /move_group/planner_configs/PDST/type: geometric::PDST
  • /move_group/planner_configs/PRM/max_nearest_neighbors: 10
  • /move_group/planner_configs/PRM/type: geometric::PRM
  • /move_group/planner_configs/PRMstar/type: geometric::PRMstar
  • /move_group/planner_configs/ProjEST/goal_bias: 0.05
  • /move_group/planner_configs/ProjEST/range: 0.0
  • /move_group/planner_configs/ProjEST/type: geometric::ProjEST
  • /move_group/planner_configs/RRT/goal_bias: 0.05
  • /move_group/planner_configs/RRT/range: 0.0
  • /move_group/planner_configs/RRT/type: geometric::RRT
  • /move_group/planner_configs/RRTConnect/range: 0.0
  • /move_group/planner_configs/RRTConnect/type: geometric::RRTCon...
  • /move_group/planner_configs/RRTstar/delay_collision_checking: 1
  • /move_group/planner_configs/RRTstar/goal_bias: 0.05
  • /move_group/planner_configs/RRTstar/range: 0.0
  • /move_group/planner_configs/RRTstar/type: geometric::RRTstar
  • /move_group/planner_configs/SBL/range: 0.0
  • /move_group/planner_configs/SBL/type: geometric::SBL
  • /move_group/planner_configs/SPARS/dense_delta_fraction: 0.001
  • /move_group/planner_configs/SPARS/max_failures: 1000
  • /move_group/planner_configs/SPARS/sparse_delta_fraction: 0.25
  • /move_group/planner_configs/SPARS/stretch_factor: 3.0
  • /move_group/planner_configs/SPARS/type: geometric::SPARS
  • /move_group/planner_configs/SPARStwo/dense_delta_fraction: 0.001
  • /move_group/planner_configs/SPARStwo/max_failures: 5000
  • /move_group/planner_configs/SPARStwo/sparse_delta_fraction: 0.25
  • /move_group/planner_configs/SPARStwo/stretch_factor: 3.0
  • /move_group/planner_configs/SPARStwo/type: geometric::SPARStwo
  • /move_group/planner_configs/STRIDE/degree: 16
  • /move_group/planner_configs/STRIDE/estimated_dimension: 0.0
  • /move_group/planner_configs/STRIDE/goal_bias: 0.05
  • /move_group/planner_configs/STRIDE/max_degree: 18
  • /move_group/planner_configs/STRIDE/max_pts_per_leaf: 6
  • /move_group/planner_configs/STRIDE/min_degree: 12
  • /move_group/planner_configs/STRIDE/min_valid_path_fraction: 0.2
  • /move_group/planner_configs/STRIDE/range: 0.0
  • /move_group/planner_configs/STRIDE/type: geometric::STRIDE
  • /move_group/planner_configs/STRIDE/use_projected_distance: 0
  • /move_group/planner_configs/TRRT/frountierNodeRatio: 0.1
  • /move_group/planner_configs/TRRT/frountier_threshold: 0.0
  • /move_group/planner_configs/TRRT/goal_bias: 0.05
  • /move_group/planner_configs/TRRT/init_temperature: 10e-6
  • /move_group/planner_configs/TRRT/k_constant: 0.0
  • /move_group/planner_configs/TRRT/max_states_failed: 10
  • /move_group/planner_configs/TRRT/min_temperature: 10e-10
  • /move_group/planner_configs/TRRT/range: 0.0
  • /move_group/planner_configs/TRRT/temp_change_factor: 2.0
  • /move_group/planner_configs/TRRT/type: geometric::TRRT
  • /move_group/planning_plugin: ompl_interface/OM...
  • /move_group/planning_scene_monitor/publish_geometry_updates: True
  • /move_group/planning_scene_monitor/publish_planning_scene: True
  • /move_group/planning_scene_monitor/publish_state_updates: True
  • /move_group/planning_scene_monitor/publish_transforms_updates: True
  • /move_group/request_adapters: industrial_trajec...
  • /move_group/sample_duration: 0.01
  • /move_group/smoothing_5_coef: [0.25, 0.5, 1.0, ...
  • /move_group/smoothing_filter_name: /move_group/smoot...
  • /move_group/start_state_max_bounds_error: 0.1
  • /robot_description: <?xml version="1....
  • /robot_description_kinematics/arm/kinematics_solver: kdl_kinematics_pl...
  • /robot_description_kinematics/arm/kinematics_solver_attempts: 3
  • /robot_description_kinematics/arm/kinematics_solver_search_resolution: 0.005
  • /robot_description_kinematics/arm/kinematics_solver_timeout: 0.005
  • /robot_description_kinematics/arm/position_only_ik: False
  • /robot_description_planning/joint_limits/grip_joint/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/grip_joint/has_velocity_limits: True
  • /robot_description_planning/joint_limits/grip_joint/max_acceleration: 0
  • /robot_description_planning/joint_limits/grip_joint/max_velocity: 3.5
  • /robot_description_planning/joint_limits/grip_joint_sub/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/grip_joint_sub/has_velocity_limits: True
  • /robot_description_planning/joint_limits/grip_joint_sub/max_acceleration: 0
  • /robot_description_planning/joint_limits/grip_joint_sub/max_velocity: 3.5
  • /robot_description_planning/joint_limits/joint1/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint1/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint1/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint1/max_velocity: 6.5
  • /robot_description_planning/joint_limits/joint2/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint2/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint2/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint2/max_velocity: 6.5
  • /robot_description_planning/joint_limits/joint3/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint3/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint3/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint3/max_velocity: 6.5
  • /robot_description_planning/joint_limits/joint4/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint4/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint4/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint4/max_velocity: 6.5
  • /robot_description_semantic: <?xml version="1....
  • /robot_name: open_manipulator
  • /rosdistro: kinetic
  • /rosversion: 1.12.13
  • /rviz_robut_linux_1_21790_1581174226874176874/arm/kinematics_solver: kdl_kinematics_pl...
  • /rviz_robut_linux_1_21790_1581174226874176874/arm/kinematics_solver_attempts: 3
  • /rviz_robut_linux_1_21790_1581174226874176874/arm/kinematics_solver_search_resolution: 0.005
  • /rviz_robut_linux_1_21790_1581174226874176874/arm/kinematics_solver_timeout: 0.005
  • /rviz_robut_linux_1_21790_1581174226874176874/arm/position_only_ik: False

NODES
/
arm_controller (open_manipulator_moveit_controller/arm_controller)
joint_state_publisher (joint_state_publisher/joint_state_publisher)
move_group (moveit_ros_move_group/move_group)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz_robut_linux_1_21790_1581174226874176874 (rviz/rviz)

ROS_MASTER_URI=http://localhost:11311

process[joint_state_publisher-1]: started with pid [21810]
process[robot_state_publisher-2]: started with pid [21811]
process[move_group-3]: started with pid [21812]
process[rviz_robut_linux_1_21790_1581174226874176874-4]: started with pid [21813]
process[arm_controller-5]: started with pid [21823]
[ INFO] [1543235446.306699129]: rviz version 1.12.16
[ INFO] [1543235446.306746437]: compiled against Qt version 5.5.1
[ INFO] [1543235446.306758034]: compiled against OGRE version 1.9.0 (Ghadamon)
[move_group-3] process has died [pid 21812, exit code -11, cmd /opt/ros/kinetic/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/move_group-3.log].
log file: /home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/move_group-3*.log
[ INFO] [1543235446.967647496]: Stereo is NOT SUPPORTED
[ INFO] [1543235446.967910198]: OpenGl version: 3 (GLSL 1.3).
[rviz_robut_linux_1_21790_1581174226874176874-4] process has died [pid 21813, exit code -11, cmd /opt/ros/kinetic/lib/rviz/rviz -d /home/fatih/WORKSPACES/ws_open_manipulator/src/open_manipulator/open_manipulator_moveit/launch/moveit.rviz __name:=rviz_robut_linux_1_21790_1581174226874176874 __log:=/home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/rviz_robut_linux_1_21790_1581174226874176874-4.log].
log file: /home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/rviz_robut_linux_1_21790_1581174226874176874-4*.log
================================================================================REQUIRED process [arm_controller-5] has died!
process has died [pid 21823, exit code -11, cmd /home/fatih/WORKSPACES/ws_open_manipulator/devel/lib/open_manipulator_moveit_controller/arm_controller __name:=arm_controller __log:=/home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/arm_controller-5.log].
log file: /home/fatih/.ros/log/6868206e-f165-11e8-bc6c-7cb0c2fe1875/arm_controller-5*.log
Initiating shutdown!

================================================================================
[arm_controller-5] killing on exit
[robot_state_publisher-2] killing on exit
[joint_state_publisher-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

What might be the problem?

Thanks in advance

Error in XM430-W350 open serial motor.

ming@ming-Lenovo-ideapad-330-15ICH:~/opencr_update$ roslaunch open_manipulator_controller open_manipulator_controller.launch
... logging to /home/ming/.ros/log/dec163c4-04c5-11e9-ba1b-983b8fe14d12/roslaunch-ming-Lenovo-ideapad-330-15ICH-6049.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://localhost:40379/

SUMMARY

PARAMETERS

  • /joint_state_publisher/source_list: ['open_manipulato...
  • /joint_state_publisher/use_gui: False
  • /move_group/allow_trajectory_execution: False
  • /move_group/arm/default_planner_config: RRTConnect
  • /move_group/arm/longest_valid_segment_fraction: 0.005
  • /move_group/arm/planner_configs: ['SBL', 'EST', 'L...
  • /move_group/arm/projection_evaluator: joints(joint1,joi...
  • /move_group/capabilities:
  • /move_group/disable_capabilities:
  • /move_group/jiggle_fraction: 0.05
  • /move_group/max_safe_path_cost: 1
  • /move_group/planner_configs/BFMT/balanced: 0
  • /move_group/planner_configs/BFMT/cache_cc: 1
  • /move_group/planner_configs/BFMT/extended_fmt: 1
  • /move_group/planner_configs/BFMT/heuristics: 1
  • /move_group/planner_configs/BFMT/nearest_k: 1
  • /move_group/planner_configs/BFMT/num_samples: 1000
  • /move_group/planner_configs/BFMT/optimality: 1
  • /move_group/planner_configs/BFMT/radius_multiplier: 1.0
  • /move_group/planner_configs/BFMT/type: geometric::BFMT
  • /move_group/planner_configs/BKPIECE/border_fraction: 0.9
  • /move_group/planner_configs/BKPIECE/failed_expansion_score_factor: 0.5
  • /move_group/planner_configs/BKPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/BKPIECE/range: 0.0
  • /move_group/planner_configs/BKPIECE/type: geometric::BKPIECE
  • /move_group/planner_configs/BiEST/range: 0.0
  • /move_group/planner_configs/BiEST/type: geometric::BiEST
  • /move_group/planner_configs/BiTRRT/cost_threshold: 1e300
  • /move_group/planner_configs/BiTRRT/frountier_node_ratio: 0.1
  • /move_group/planner_configs/BiTRRT/frountier_threshold: 0.0
  • /move_group/planner_configs/BiTRRT/init_temperature: 100
  • /move_group/planner_configs/BiTRRT/range: 0.0
  • /move_group/planner_configs/BiTRRT/temp_change_factor: 0.1
  • /move_group/planner_configs/BiTRRT/type: geometric::BiTRRT
  • /move_group/planner_configs/EST/goal_bias: 0.05
  • /move_group/planner_configs/EST/range: 0.0
  • /move_group/planner_configs/EST/type: geometric::EST
  • /move_group/planner_configs/FMT/cache_cc: 1
  • /move_group/planner_configs/FMT/extended_fmt: 1
  • /move_group/planner_configs/FMT/heuristics: 0
  • /move_group/planner_configs/FMT/nearest_k: 1
  • /move_group/planner_configs/FMT/num_samples: 1000
  • /move_group/planner_configs/FMT/radius_multiplier: 1.1
  • /move_group/planner_configs/FMT/type: geometric::FMT
  • /move_group/planner_configs/KPIECE/border_fraction: 0.9
  • /move_group/planner_configs/KPIECE/failed_expansion_score_factor: 0.5
  • /move_group/planner_configs/KPIECE/goal_bias: 0.05
  • /move_group/planner_configs/KPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/KPIECE/range: 0.0
  • /move_group/planner_configs/KPIECE/type: geometric::KPIECE
  • /move_group/planner_configs/LBKPIECE/border_fraction: 0.9
  • /move_group/planner_configs/LBKPIECE/min_valid_path_fraction: 0.5
  • /move_group/planner_configs/LBKPIECE/range: 0.0
  • /move_group/planner_configs/LBKPIECE/type: geometric::LBKPIECE
  • /move_group/planner_configs/LBTRRT/epsilon: 0.4
  • /move_group/planner_configs/LBTRRT/goal_bias: 0.05
  • /move_group/planner_configs/LBTRRT/range: 0.0
  • /move_group/planner_configs/LBTRRT/type: geometric::LBTRRT
  • /move_group/planner_configs/LazyPRM/range: 0.0
  • /move_group/planner_configs/LazyPRM/type: geometric::LazyPRM
  • /move_group/planner_configs/LazyPRMstar/type: geometric::LazyPR...
  • /move_group/planner_configs/PDST/type: geometric::PDST
  • /move_group/planner_configs/PRM/max_nearest_neighbors: 10
  • /move_group/planner_configs/PRM/type: geometric::PRM
  • /move_group/planner_configs/PRMstar/type: geometric::PRMstar
  • /move_group/planner_configs/ProjEST/goal_bias: 0.05
  • /move_group/planner_configs/ProjEST/range: 0.0
  • /move_group/planner_configs/ProjEST/type: geometric::ProjEST
  • /move_group/planner_configs/RRT/goal_bias: 0.05
  • /move_group/planner_configs/RRT/range: 0.0
  • /move_group/planner_configs/RRT/type: geometric::RRT
  • /move_group/planner_configs/RRTConnect/range: 0.0
  • /move_group/planner_configs/RRTConnect/type: geometric::RRTCon...
  • /move_group/planner_configs/RRTstar/delay_collision_checking: 1
  • /move_group/planner_configs/RRTstar/goal_bias: 0.05
  • /move_group/planner_configs/RRTstar/range: 0.0
  • /move_group/planner_configs/RRTstar/type: geometric::RRTstar
  • /move_group/planner_configs/SBL/range: 0.0
  • /move_group/planner_configs/SBL/type: geometric::SBL
  • /move_group/planner_configs/SPARS/dense_delta_fraction: 0.001
  • /move_group/planner_configs/SPARS/max_failures: 1000
  • /move_group/planner_configs/SPARS/sparse_delta_fraction: 0.25
  • /move_group/planner_configs/SPARS/stretch_factor: 3.0
  • /move_group/planner_configs/SPARS/type: geometric::SPARS
  • /move_group/planner_configs/SPARStwo/dense_delta_fraction: 0.001
  • /move_group/planner_configs/SPARStwo/max_failures: 5000
  • /move_group/planner_configs/SPARStwo/sparse_delta_fraction: 0.25
  • /move_group/planner_configs/SPARStwo/stretch_factor: 3.0
  • /move_group/planner_configs/SPARStwo/type: geometric::SPARStwo
  • /move_group/planner_configs/STRIDE/degree: 16
  • /move_group/planner_configs/STRIDE/estimated_dimension: 0.0
  • /move_group/planner_configs/STRIDE/goal_bias: 0.05
  • /move_group/planner_configs/STRIDE/max_degree: 18
  • /move_group/planner_configs/STRIDE/max_pts_per_leaf: 6
  • /move_group/planner_configs/STRIDE/min_degree: 12
  • /move_group/planner_configs/STRIDE/min_valid_path_fraction: 0.2
  • /move_group/planner_configs/STRIDE/range: 0.0
  • /move_group/planner_configs/STRIDE/type: geometric::STRIDE
  • /move_group/planner_configs/STRIDE/use_projected_distance: 0
  • /move_group/planner_configs/TRRT/frountierNodeRatio: 0.1
  • /move_group/planner_configs/TRRT/frountier_threshold: 0.0
  • /move_group/planner_configs/TRRT/goal_bias: 0.05
  • /move_group/planner_configs/TRRT/init_temperature: 10e-6
  • /move_group/planner_configs/TRRT/k_constant: 0.0
  • /move_group/planner_configs/TRRT/max_states_failed: 10
  • /move_group/planner_configs/TRRT/min_temperature: 10e-10
  • /move_group/planner_configs/TRRT/range: 0.0
  • /move_group/planner_configs/TRRT/temp_change_factor: 2.0
  • /move_group/planner_configs/TRRT/type: geometric::TRRT
  • /move_group/planning_plugin: ompl_interface/OM...
  • /move_group/planning_scene_monitor/publish_geometry_updates: True
  • /move_group/planning_scene_monitor/publish_planning_scene: True
  • /move_group/planning_scene_monitor/publish_state_updates: True
  • /move_group/planning_scene_monitor/publish_transforms_updates: True
  • /move_group/request_adapters: industrial_trajec...
  • /move_group/sample_duration: 0.05
  • /move_group/smoothing_5_coef: [0.25, 0.5, 1.0, ...
  • /move_group/smoothing_filter_name: /move_group/smoot...
  • /move_group/start_state_max_bounds_error: 0.1
  • /open_manipulator/control_period: 0.01
  • /open_manipulator/moveit_sample_duration: 0.05
  • /open_manipulator/planning_group_name: arm
  • /open_manipulator/using_moveit: True
  • /open_manipulator/using_platform: True
  • /robot_description: <?xml version="1....
  • /robot_description_kinematics/arm/kinematics_solver: kdl_kinematics_pl...
  • /robot_description_kinematics/arm/kinematics_solver_attempts: 3
  • /robot_description_kinematics/arm/kinematics_solver_search_resolution: 0.005
  • /robot_description_kinematics/arm/kinematics_solver_timeout: 0.005
  • /robot_description_kinematics/arm/position_only_ik: False
  • /robot_description_planning/joint_limits/joint1/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint1/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint1/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint1/max_velocity: 4.8
  • /robot_description_planning/joint_limits/joint2/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint2/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint2/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint2/max_velocity: 4.8
  • /robot_description_planning/joint_limits/joint3/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint3/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint3/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint3/max_velocity: 4.8
  • /robot_description_planning/joint_limits/joint4/has_acceleration_limits: False
  • /robot_description_planning/joint_limits/joint4/has_velocity_limits: True
  • /robot_description_planning/joint_limits/joint4/max_acceleration: 0
  • /robot_description_planning/joint_limits/joint4/max_velocity: 4.8
  • /robot_description_semantic: <?xml version="1....
  • /rosdistro: kinetic
  • /rosversion: 1.12.14
  • /rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107/arm/kinematics_solver: kdl_kinematics_pl...
  • /rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107/arm/kinematics_solver_attempts: 3
  • /rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107/arm/kinematics_solver_search_resolution: 0.005
  • /rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107/arm/kinematics_solver_timeout: 0.005
  • /rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107/arm/position_only_ik: False

NODES
/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
move_group (moveit_ros_move_group/move_group)
open_manipulator (open_manipulator_controller/open_manipulator_controller)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107 (rviz/rviz)

ROS_MASTER_URI=http://localhost:11311

process[joint_state_publisher-1]: started with pid [6070]
process[robot_state_publisher-2]: started with pid [6071]
process[move_group-3]: started with pid [6072]
process[rviz_ming_Lenovo_ideapad_330_15ICH_6049_6363105133791130107-4]: started with pid [6073]
process[open_manipulator-5]: started with pid [6085]
[ INFO] [1545359118.890838056]: Loading robot model 'open_manipulator'...
[ INFO] [1545359118.890928296]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1545359118.969077727]: rviz version 1.12.16
[ INFO] [1545359118.969127284]: compiled against Qt version 5.5.1
[ INFO] [1545359118.969139241]: compiled against OGRE version 1.9.0 (Ghadamon)
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ INFO] [1545359119.092808782]: Loading robot model 'open_manipulator'...
[ INFO] [1545359119.092861760]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [TxRxResult] There is no status packet!
[ERROR] groupSyncRead getdata failed
[ERROR] groupSyncRead getdata failed
[ERROR] groupSyncRead getdata failed
[open_manipulator-5] process has died [pid 6085, exit code -11, cmd /home/ming/catkin_ws/devel/lib/open_manipulator_controller/open_manipulator_controller /dev/ttyACM0 1000000 __name:=open_manipulator __log:=/home/ming/.ros/log/dec163c4-04c5-11e9-ba1b-983b8fe14d12/open_manipulator-5.log].
log file: /home/ming/.ros/log/dec163c4-04c5-11e9-ba1b-983b8fe14d12/open_manipulator-5*.log
[ INFO] [1545359119.691811550]: Stereo is NOT SUPPORTED
[ INFO] [1545359119.691910637]: OpenGl version: 4.5 (GLSL 4.5).
0x2586840 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x18edf70) ): Attempt to set a screen on a child window.
0x2586c60 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x18edf70) ): Attempt to set a screen on a child window.
0x2587f40 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x18edf70) ): Attempt to set a screen on a child window.
0x258bad0 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x18edf70) ): Attempt to set a screen on a child window.
[ INFO] [1545359119.819337019]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1545359119.823479932]: MoveGroup debug mode is OFF
Starting context monitors...
[ INFO] [1545359119.823521687]: Starting scene monitor
[ INFO] [1545359119.827252156]: Listening to '/planning_scene'
[ INFO] [1545359119.827284477]: Starting world geometry monitor
[ INFO] [1545359119.830916997]: Listening to '/collision_object' using message notifier with target frame '/world '
[ INFO] [1545359119.834868422]: Listening to '/planning_scene_world' for planning scene world geometry
[ WARN] [1545359119.835516890]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[ INFO] [1545359120.730661207]: Listening to '/attached_collision_object' for attached collision objects
Context monitors started.
[ INFO] [1545359120.766583699]: Initializing OMPL interface using ROS parameters
[ INFO] [1545359120.798622705]: Using planning interface 'OMPL'
[ INFO] [1545359120.801237221]: Constructing N point filter
[ INFO] [1545359120.808695800]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1545359120.809536706]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1545359120.810186935]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1545359120.810827693]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1545359120.811387095]: Param 'jiggle_fraction' was set to 0.05
[ INFO] [1545359120.811941653]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1545359120.812020210]: Using planning request adapter 'Trajectory filter 'UniformSampleFilter' of type 'UniformSampleFilter''
[ INFO] [1545359120.812039015]: Using planning request adapter 'Add Smoothing Trajectory Filter'
[ INFO] [1545359120.812055784]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1545359120.812070695]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1545359120.812084622]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1545359120.812098738]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1545359120.812118275]: Using planning request adapter 'Fix Start State Path Constraints'
Loading 'move_group/ApplyPlanningSceneService'...
Loading 'move_group/ClearOctomapService'...
Loading 'move_group/MoveGroupCartesianPathService'...
Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
Loading 'move_group/MoveGroupGetPlanningSceneService'...
Loading 'move_group/MoveGroupKinematicsService'...
Loading 'move_group/MoveGroupMoveAction'...
Loading 'move_group/MoveGroupPickPlaceAction'...
Loading 'move_group/MoveGroupPlanService'...
Loading 'move_group/MoveGroupQueryPlannersService'...
Loading 'move_group/MoveGroupStateValidationService'...
[ INFO] [1545359120.882547302]:


  • MoveGroup using:
  • - ApplyPlanningSceneService
    
  • - ClearOctomapService
    
  • - CartesianPathService
    
  • - ExecuteTrajectoryAction
    
  • - GetPlanningSceneService
    
  • - KinematicsService
    
  • - MoveAction
    
  • - PickPlaceAction
    
  • - MotionPlanService
    
  • - QueryPlannersService
    
  • - StateValidationService
    

[ INFO] [1545359120.882620875]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[ INFO] [1545359120.882643571]: MoveGroup context initialization complete

You can start planning now!

[ INFO] [1545359123.127728808]: Loading robot model 'open_manipulator'...
[ INFO] [1545359123.127787231]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1545359123.266184698]: Loading robot model 'open_manipulator'...
[ INFO] [1545359123.266217683]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1545359124.020115521]: Starting scene monitor
[ INFO] [1545359124.024352171]: Listening to '/move_group/monitored_planning_scene'
[ INFO] [1545359124.276935656]: Constructing new MoveGroup connection for group 'arm' in namespace ''
[ INFO] [1545359125.320060793]: Ready to take commands for planning group arm.
[ INFO] [1545359125.320151973]: Looking around: no
[ INFO] [1545359125.320219750]: Replanning: no
[ WARN] [1545359125.357431447]: Interactive marker 'EE:goal_end_effector_link' contains unnormalized quaternions. This warning will only be output once but may be true for others; enable DEBUG messages for ros.rviz.quaternions to see more details.

my linux is 16.04 LTS
ROS is kinetic 1.12.14
using open cr 1.0

I can find dynamixel with below code with openCR firmware " usb_to_dxl"
rosrun dynamixel_workbench_controllers find_dynamixel /dev/ttyACM0

If I change the openCR firmware into "open_manipulator/example/arduino/chain" , the below code can't find dynamixel.
rosrun dynamixel_workbench_controllers find_dynamixel /dev/ttyACM0

What is the problem??

How to run below code with appropriate serial port?
roslaunch open_manipulator_controller open_manipulator_controller.launch

ROS2

Do you plan ROS 2 support?

Open_manipulator with AX-12 servos

I am using AX-12 motors for a customized open manipulator, which connected to PC with U2D2. I am facing problem while running the open_manipulator_controller.launch file. Is it possible to use AX, MX servomotors with this package? Any help is much appreciated.
Below is the error message.

started roslaunch server http://localhost:41105/

SUMMARY

PARAMETERS

  • /open_manipulator_controller/baud_rate: 57142
  • /open_manipulator_controller/usb_port: /dev/ttyUSB0
  • /open_manipulator_controller/using_platform: True
  • /robot_name: open_manipulator
  • /rosdistro: kinetic
  • /rosversion: 1.12.14

NODES
/
open_manipulator_controller (open_manipulator_controller/open_manipulator_controller)

ROS_MASTER_URI=http://localhost:11311

process[open_manipulator_controller-1]: started with pid [6286]
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [TxRxResult] There is no status packet!
[ERROR] Please check your Dynamixel ID
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelDriver] Failed to get the Tool
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [DynamixelWorkbench] Failed to change torque status!
[ERROR] [TxRxResult] There is no status packet!
[ERROR] groupSyncRead getdata failed
[ERROR] groupSyncRead getdata failed
[ERROR] groupSyncRead getdata failed

catkin_make failed

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by
"open_manipulator_msgs" with any of the following names:

Can't find open_manipulator_demo.launch

I am following the ROS_Robot_Programming_CN and learning to control the manipulator in gazebo from rviz. But I find that I can't find files such as open_manipulator_demo.launch under the folder open_manipulator_moveit , position_controller.cpp and so on.Have the code changed?But I can't find files similar with them. Can anyone give me some suggestion? Thanks a lot.

Getting error message when trying to control manipulator via ROS

Hello everyone, I was trying to control the manipulator via ROS. Everything mentioned in the tutorial has been installed and compiled without error. I also modified the launch file as below:
image

However, when I do roslaunch
image

It prompts me such error:
image

There is torque on the manipulator. So I wonder what could cause this error. Thanks!

There is a typo in the emanaul of the open manipulator.

There is a typo in the emanaul of the open manipulator.
So I can see erro log the log is 'see Repository not found' when I download dynamixel_workbench.git and dynamixel_workbench_msgs.git .

Please Check this point. :)
http://emanual.robotis.com/docs/en/platform/openmanipulator/

$ git clone https://github.com/ROBOTIS-GIT/dynamixel_workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel_workbench_msgs.git
->
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git

Reusability of OpenManipulator for a Project & Simulation

Hi,

I was informed by Robotis-USA to inquire here with the hopes that the open source team could shed some light on my question.

An internal application we're developing (not sold, just for internal testing) will be using three dynamixel pro-pluses for a particular 3D articulation. I can speak more to the application if necessary, but it is fairly simple. One of Robotis' technical specialists pointed us to ROS as a means to speed up development and testing while waiting for the motors to arrive.

I've read through the ROS Robot Programming book (written by the Turtlebot3 developers), focusing mostly on the OpenManipulator (OM) example. I was able to get the OM simulation to articulate in Gazebo using the open_manipulator_control_gui after some effort.

My hope is to now leverage as much as I can of the open manipulator source code, refactoring it for our internal application application in order to test out some ideas before committing to the final design. I am short on time so I need to be able to have something under simulation within ~2 weeks, which is why I hope to re-use much of the OM code.

Browsing the OM projects source code has lead me to believe the set up will be a lot more complicated than originally thought. Stated differently, I was originally lead to believe that once the description was set up (urdf, importing stl files, joint, and linkage setup), that the simulation would help focus on tuning maneuver in 3D-space. There appears to be a lot of dynamics/kinematics code needed before I could even get to that point.

The key modules I'm speaking to are:

  • open_manipulator_controller/ appears to set up services to route requests to change/update the OM trajectory. Consequently, most if not all behavior funnels through callbacks associated to the advertisers which issue open_manipulator_.drawingTrajectoryMove() or open_manipulator_.jointTrajectoryMoveToPresentValue(), specifying the angle/position and the required time to complete the maneuver, when someone publishes to the topic. At first glance, this appears to be directly reusable as there doesn't appear to be anything specific to the OM mechanics.

  • open_manipulator_libs/ contains a lot of code which I think most could be reused directly, aside from the drawing shapes code. I think the big question for me is the re-usability of the Kinematics module. The OpenManipulator module in this path appears to be similar to the URDF setup files in the description so this would be need to be rewritten.

  • robotis_manipulator/ is probably the puzzling. There's the main cpp file, the math cpp file, and the trajectory cpp file, all of which I'm not sure how it fits into the overall picture other than "it helps things work". My gut is telling me this module would need to be rewritten in its entirety.

If I am to work on a fresh design of our own, will modules such as the kinematics or trajectory need to be written from scratch for use in our application? Per what I've covered above, or if I've left any module out, which of them would need to be written to be tailored to our application? The specialist we spoke to made it sound like the simulation development and testing would be focused on tuning the robotic maneuver, whereas this feels several weeks away if I need to write my own kinematic and trajectory modules, in addition to our own applications "robotis_manipulator".

Feel free to reach me at amanghi {@} orthalign {.} com for a direct response.

Overload

In testing the Open Manipulator arm we have had Dynamixel ID 12 & 13 (shoulder & elbow) experience Overload (OL) errors when jogging the arm downward with keyboard teleop.

It looks like the arm should have some acceleration limiting to prevent this,.

About open_manipulator_dynamixel_controller

Hi dear,
I try to use the open_manipulator_dynamixel_controller package in ros. But, when I run it , it shows that
[ INFO] [1534897770.150706237]: open_manipulator_dynamixel_controller : Init OK!
Segmentation fault (core dumped)

But I do not change the code. Would you like to help me figure it out?
Thanks

open_manipulator dynamixel_controller.launch crashing

I have 6 dynamixel pro motors connected in daisy chain. When I launch the dynamixel controller node in the open manipulator package, the node throws an error

started roslaunch server http://asimov-All-Series:37783/

`SUMMARY

PARAMETERS

  • /baud_rate: 57600
  • /device_name: /dev/ttyUSB0
  • /rosdistro: kinetic
  • /rosversion: 1.12.7
  • /scan_range: 253v

NODES
/
open_manipulator_dynamixel_controller (open_manipulator_dynamixel_ctrl/dynamixel_controller)

auto-starting new master
process[master]: started with pid [4429]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 5a1045d8-501f-11e8-abb0-e8de270f8bfc
process[rosout-1]: started with pid [4442]
started core service [/rosout]
process[open_manipulator_dynamixel_controller-2]: started with pid [4449]
[ INFO] [1525495640.602282023]: open_manipulator_dynamixel_controller : Init OK!
================================================================================REQUIRED process [open_manipulator_dynamixel_controller-2] has died!
process has died [pid 4449, exit code -11, cmd /home/asimov/open_manipulator_ws/devel/lib/open_manipulator_dynamixel_ctrl/dynamixel_controller __name:=open_manipulator_dynamixel_controller __log:=/home/asimov/.ros/log/5a1045d8-501f-11e8-abb0-e8de270f8bfc/open_manipulator_dynamixel_controller-2.log].
log file: /home/asimov/.ros/log/5a1045d8-501f-11e8-abb0-e8de270f8bfc/open_manipulator_dynamixel_controller-2*.log
Initiating shutdown!

[open_manipulator_dynamixel_controller-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
`

The issue is similar to the below issue
##28

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.