Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all 1441 articles
Browse latest View live

joint_states messages different

$
0
0
Hello, I have a custom 6DOF arm that I'm trying to interface with moveit. I have created the URDF and the model, and I have loaded it into rviz. I have made a lot of progress with it I think. I'm using ros indigo on ubuntu 14.04 I subscribe to the joint_states topic on my arduino. Using the arduino code I am able to individually control each joint using the joint state sliders when I run the display.launch I've completed the moveit configuration and it loads with no problems in rviz, and I can plan movements, etc. however when my arduino subscribes to the joint_states topic at this point, I get errors in rosserial saying [ERROR] [WallTime: 1479872259.522084] Message from ROS network dropped: message larger than buffer. What is different with these messages than the ones generated from display.launch? I performed some investigation and found something interesting: This is the message from when I use moveit demo.launch header: seq: 954 stamp: secs: 1479873407 nsecs: 957350015 frame_id: '' name: ['shoulder_base', 'upper_arm_shoulder', 'elbow_upper_arm', 'forearm_elbow', 'wrist_forearm', 'gripper_wrist', 'left_jaw_gripper', 'right_jaw_gripper'] position: [4.435017290525138e-05, 9.012486469545027e-05, 3.372531827300197e-05, 5.395870120266208e-05, 4.7403243313592324e-05, 0.8750411991072651, 0.0, 0.0] velocity: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] effort: [] and this is the message when I use display.launch header: seq: 228 stamp: secs: 1479873728 nsecs: 257888078 frame_id: '' name: ['shoulder_base', 'upper_arm_shoulder', 'elbow_upper_arm', 'forearm_elbow', 'wrist_forearm', 'gripper_wrist', 'left_jaw_gripper', 'right_jaw_gripper'] position: [0.0, 0.0, 0.0, 0.0, 0.0, 1.2491756999999999, 0.0, 0.0] velocity: [] effort: [] why the differences, and more importantly, can I make the position data the same data types/precision?

Using rviz_visual_tools no matching function

$
0
0
Hello All! Currently i try to implement the rviz_visual_tools in my youbot simulation model. I tried to use the computecartesianpath()-function in MoveIt! and wanted to use the publishpath-function of rviz_visual_tool afterwards to generate the path: namespace rvt = rviz_visual_tools; rviz_visual_tools::RvizVisualTools visual_tools("odom_combined"); ... ... double fraction = group.computeCartesianPath(waypoints, 0.01, 0.0, trajectory); ... visual_tools.deleteAllMarkers(); visual_tools.publishPath(waypoints, rvt::LIME_GREEN, rvt::LARGE); for (std::size_t i=0; i

[MoveIt!] Plan to a goal without specifying all axes

$
0
0
Hi, is there a way to plan a path to a goal which is defined with a position (x, y, z) and a value for pitch and roll, but leave yaw open for variation? For my use case the yaw angle is not relevant, so I don't want to restrict possible paths by defining a value for it. As far as I understand not giving a value for the axis will not work, because the value is initialized to zero. Another approach would be to set the goal_orientation_tolerance. However, this is quite unsatisfying as this sets the tolerance for the whole pose and not only one specific axis.

Gazebo and MoveIt! MoveitSimpleControllerManager and sending joint trajectory messages

$
0
0
Hi I've been working my way through the MoveIt! tutorials and have been having some problems with the Gazebo integration. I'm simply trying to plan and execute a command in MoveIt! and have it displayed on the Gazebo simulator, in this case using the Fanuc m10ia model. I have had to use the MoveItSimpleControllerManager instead of the Pr2controller, (also if any one else is using this I believe there is an error with the spelling, as it is listed as Simple_MoveIt_Controller_Manager and not MoveIt_Simple_Controller_Manager). Anyway, upon running roslaunch fanuc_m10ia_moveit_config moveit_planning_execution.launch I get any error saying: [ INFO] [1375734277.680123500, 1255.832000000]: MoveitSimpleControllerManager: Waiting for moveit_simple_controller/follow_joint_trajectory to come up [ERROR] [1375734283.338320976, 1260.832000000]: MoveitSimpleControllerManager: Action client not connected: moveit_simple_controller/follow_joint_trajectory Is there some step I have missed, or some node / service I should have started that I am unaware of? Here is some additional information Controllers.yaml controller_manager_ns: moveit_simple_controller_manager controller_list: - name: moveit_simple_controller type: FollowJointTrajectory action_ns: follow_joint_trajectory default: true joints: - joint_1 - joint_2 - joint_3 - joint_4 - joint_5 - joint_6 - joint_6-tool0 moveit_planning_execution.launch # The planning and execution components of MoveIt! configured to # publish the current configuration of the robot (simulated or real) # and the current state of the world as seen by the planner # The visualization component of MoveIt! fanuc_m10ia_controller_manager.launch Any help is appreciated. (Apologies for the cross post) Cdr

How do I do a rosservice call to /compute_ik provided by Move It!

$
0
0
How do I call a rosservice to compute the inverse kinematics? I have > rosservice call /compute_ik What format of arguments do I pass? Should I point to arguments published by a topic? Thank you!

Moveit Virtual Box crashes

$
0
0
Hey all, I installed Ubuntu 14.04 and ROS Indigo on my Virtual Box. After starting the Moveit Setup Assistant and launching an URDF File, the Assistant crashes. I installed the Pr2 Demo Package and tried roslaunch pr2_moveit_config demo.launch but RVIZ crashes again with the error Code: [rviz_muhi_VirtualBox_2662_3043522441594486229-6] process has died [pid 2723, exit code -11, cmd /opt/ros/indigo/lib/rviz/rviz -d /opt/ros/indigo/share/pr2_moveit_config/launch/moveit.rviz __name:=rviz_muhi_VirtualBox_2662_3043522441594486229 __log:=/home/muhi/.ros/log/f849d4d6-b7e0-11e6-a223-08002778ad04/rviz_muhi_VirtualBox_2662_3043522441594486229-6.log]. Do you have any ideas how i can fix this problem? Thanks and greetings muhi

Temporarily changing of joint limits in RobotState

$
0
0
I am calculating the IK for my robot setup using: robot_state::RobotState kinematicStateArm = *m_arm.getCurrentState(); foundIkForArm = kinematicStateArm.setFromIK(jointModelGroupArm, targetPose, 10, 0.05); kinematicStateArm.copyJointGroupPositions(jointModelGroupArm, jointValuesArm); Now on certain occasions, I do have to restrict the joint limits in one of the joints further than required for the default case. Is there any method that allows one to change the joint limits used within the RobotState IK framework? I have seen that the moveit::core::JointModel setVariableBounds() [Reference](http://docs.ros.org/jade/api/moveit_core/html/classmoveit_1_1core_1_1JointModel.html) allows one to modify the joint limits. However I do see no way of accessing this method from the RobotState API. Does anyone know of a method or way on how to approach my issue?

3D costmap as obstacle for MoveIt!

$
0
0
Dear Ros Users, I am using MoveIt for controlling a robotic arm Is there a way to use a 3D grid as costmap as obstacle for MoveIT planner? Thanks!

Interactive markers does not appear on Moveit only for my robot model

$
0
0
After I import the package to Moveit I cant see Interactive markers to my robot so I can't execute a motion plan. I have checked urdf with `check_urdf`, I can move all links on Moveit Setup Assistant and all looks ok. [Screenshoots, Robot, Moveit setup assistant.] (https://postimg.org/gallery/pcyvpyvk/) [url=https://postimage.org/]photo hosting sites[/url] SRDF: Information when i upload it to Moveit: [ INFO] [1480689682.201512724]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner [ INFO] [1480689682.201602195]: MoveGroup context initialization complete All is well! Everyone is happy! You can start planning now! Registered event listener change listener: true [ INFO] [1480689683.789499562]: Loading robot model 'Assem5.SLDASM'... [ WARN] [1480689683.935955978]: Could not identify parent group for end-effector 'end_effector_link 5' [ INFO] [1480689684.093612791]: Loading robot model 'Assem5.SLDASM'... [ WARN] [1480689684.233352057]: Could not identify parent group for end-effector 'end_effector_link 5' [ WARN] [1480689684.233805597]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF. [ INFO] [1480689684.818941731]: Starting scene monitor [ INFO] [1480689684.826124575]: Listening to '/move_group/monitored_planning_scene' [ INFO] [1480689685.533798626]: No active joints or end effectors found for group ''. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace. [ INFO] [1480689685.534217491]: No active joints or end effectors found for group 'arms'. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace. [ WARN] [1480689685.534651803]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF. [ INFO] [1480689685.541682110]: No active joints or end effectors found for group 'arms'. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace. [ INFO] [1480689685.544602709]: Constructing new MoveGroup connection for group 'arms' in namespace '' [ INFO] [1480689686.447761196]: Ready to take MoveGroup commands for group arms. [ INFO] [1480689686.447874546]: Looking around: no [ INFO] [1480689686.447957077]: Replanning: no

how to install move_group_interface from source

$
0
0
Hi... I tried to install moveit / kinetic. I follow Source Install Tutorial from http://moveit.ros.org/install/source/ , but include file and llibrary not installed on my system on my program .cpp "#include --> give error : unresolved inclusion. if I copy the header file to correct location, on build time i got: undefined reference to `moveit::planning_interface::MoveGroupInterface::MoveGroupInterface Looks like the move_group_interface not installed. Same thing happen with planning_scene_interface (on moveit_ros too). But other package on moveit_core is OK. Please help how to install moveit from source. Thanks. **Update:** This is my CMakeLists.txt cmake_minimum_required(VERSION 2.8.3) project(robin_001) find_package(catkin REQUIRED COMPONENTS cmake_modules cv_bridge image_transport roscpp sensor_msgs std_msgs ) include_directories( ${catkin_INCLUDE_DIRS} ) ${catkin_EXPORTED_TARGETS}) add_definitions( -std=c++11 ) include_directories( $ENV{OPENNI2_INCLUDE} /usr/local/include #for realsense ) link_directories( $ENV{OPENNI2_REDIST} /usr/local/lib #for realsense ) link_libraries( -lOpenNI2 -lrealsense ) find_package(Eigen REQUIRED) include_directories(SYSTEM ${Boost_INCLUDE_DIR} ${EIGEN_INCLUDE_DIRS}) add_executable(Robin001 src/ArmControl.cpp src/ArmPosition.cpp src/Calibration.cpp src/Cam2World.cpp src/ColorTracking.cpp src/MarkPointDetector.cpp src/RobinArm.cpp src/SenseStream.cpp ) target_link_libraries(Robin001 ${catkin_LIBRARIES}) add_executable(RobinMoveit src/robin_moveit.cpp ) target_link_libraries(RobinMoveit ${catkin_LIBRARIES})

Which package should I use in CMakeLists.txt?

$
0
0
I want to use the MoveIt! package on ROS indigo, and I am following the tutorial at http://docs.ros.org/hydro/api/pr2_moveit_tutorials/html/planning/src/doc/move_group_interface_tutorial.html. As an example of how to use MoveIt! in C++, the tutorial provides the following line: moveit::planning_interface::MoveGroup group("right_arm"); What I am trying to figure out, is how to actually compile this. So, I have built a new ROS package, and in the `CMakeLists.txt` file for that package, I need to specify where to look for header and library files. But **how do I know the name of the package that is required for the above code?** If I look in `/opt/ros/indigo/include`, there are various directories such as `moveit`, `moveit_msgs`, `moveit_planners_ompl`, and similarly in `/opt/ros/indigo/lib` and `/opt/ros/indigo/share`. Is each of these directories a package, or is each one a node, or something else? After doing a bit of research, I found that the `moveit::planning_interface::MoveGroup` class from the above code is defined in `/opt/ros/indigo/include/moveit/move_group_interface/move_group.h`. This suggests to me that I should be using the `moveit` or `move_group_interface` packages, but if I try either of these, then it fails. For example, in my `CMakeLists.txt` file, if I have: find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs genmsg moveit) And then I try to build my package, it tells me: Could not find a package configuration file provided by "moveit" And similarly for `move_group_interface`. So I'm obviously a bit confused as to what ROS packages actually are, where they are stored on my machine, and how to know which one I should be referencing in `CMakeLists.txt`. Any help? Thanks :)

First attached object disappears upon attaching second object

$
0
0
Hi everyone, I have followed the [tutorials](http://docs.ros.org/indigo/api/moveit_tutorials/html/doc/pr2_tutorials/planning/src/doc/planning_scene_ros_api_tutorial.html) to add an object to the planning scene and also attach an object to the robot. I have written 2 nodes for adding 2 different objects to the planning scene and 2 other nodes for attaching them to the robot. I run the nodes one after the other. My node for adding the first object to the planning scene is: #include #include // MoveIt! #include #include #include #include #include #include #include #include #include using namespace Eigen; int main(int argc, char **argv) { ros::init (argc, argv, "add_kinematic"); ros::AsyncSpinner spinner(1); spinner.start(); ros::NodeHandle node_handle; ros::Duration sleep_time(5.0); sleep_time.sleep(); // Advertise the required topic // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Note that this topic may need to be remapped in the launch file ros::Publisher planning_scene_diff_publisher = node_handle.advertise("planning_scene", 1); while(planning_scene_diff_publisher.getNumSubscribers() < 1) { ros::WallDuration sleep_t(0.5); sleep_t.sleep(); } moveit_msgs::AttachedCollisionObject attached_object; attached_object.link_name = "tool0"; attached_object.object.header.frame_id = "base_link"; // The header must contain a valid TF frame attached_object.object.id = "kinematic_t"; // The id of the object Vector3d b(0.001, 0.001, 0.001); shapes::Mesh* m = shapes::createMeshFromResource("package://trial/meshes/objects/kinematic_t.stl",b); ROS_INFO("kinematic_t loaded"); shape_msgs::Mesh mesh; shapes::ShapeMsg mesh_msg; shapes::constructMsgFromShape(m, mesh_msg); mesh = boost::get(mesh_msg); attached_object.object.meshes.resize(1); attached_object.object.mesh_poses.resize(1); attached_object.object.meshes[0]=mesh; //geometry_msgs::Pose target_pose1; // A default pose attached_object.object.mesh_poses[0].position.x = 0.329474; attached_object.object.mesh_poses[0].position.y = -0.301132; attached_object.object.mesh_poses[0].position.z = 0.3; attached_object.object.mesh_poses[0].orientation.w = 0.707; attached_object.object.mesh_poses[0].orientation.x = 0.0; attached_object.object.mesh_poses[0].orientation.y = 0.707; attached_object.object.mesh_poses[0].orientation.z = 0.0; attached_object.object.meshes.push_back(mesh); attached_object.object.mesh_poses.push_back(attached_object.object.mesh_poses[0]); // Note that attaching an object to the robot requires // the corresponding operation to be specified as an ADD operation attached_object.object.operation = attached_object.object.ADD; // Add an object into the environment // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Add the object into the environment by adding it to // the set of collision objects in the "world" part of the // planning scene. Note that we are using only the "object" // field of the attached_object message here. ROS_INFO("Adding kinematic_t to the World"); moveit_msgs::PlanningScene planning_scene; planning_scene.world.collision_objects.push_back(attached_object.object); planning_scene.is_diff = true; planning_scene_diff_publisher.publish(planning_scene); sleep_time.sleep(); ros::shutdown(); return 0; } ---- Likewise, the second node to add another object (tool) to the planning scene at a different pose. My node for attaching the first object to the robot is: #include #include // MoveIt! #include #include #include #include #include #include #include #include #include #include #include using namespace Eigen; int main(int argc, char **argv) { ros::init (argc, argv, "pickup_kinematic"); ros::AsyncSpinner spinner(1); spinner.start(); ros::NodeHandle node_handle; ros::Duration sleep_time(5.0); sleep_time.sleep(); sleep_time.sleep(); ros::Publisher planning_scene_diff_publisher = node_handle.advertise("planning_scene", 1); while(planning_scene_diff_publisher.getNumSubscribers() < 1) { ros::WallDuration sleep_t(0.5); sleep_t.sleep(); } moveit_msgs::PlanningScene planning_scene; moveit_msgs::AttachedCollisionObject attached_object; attached_object.link_name = "tool0"; attached_object.object.header.frame_id = "tool0"; // The header must contain a valid TF frame attached_object.object.id = "kinematic_t"; // The id of the object Vector3d b(0.001, 0.001, 0.001); shapes::Mesh* m = shapes::createMeshFromResource("package://trial/meshes/objects/kinematic_t.stl",b); //ROS_INFO("Mesh loaded"); shape_msgs::Mesh mesh; shapes::ShapeMsg mesh_msg; shapes::constructMsgFromShape(m, mesh_msg); mesh = boost::get(mesh_msg); attached_object.object.meshes.resize(1); attached_object.object.mesh_poses.resize(1); attached_object.object.meshes[0]=mesh; //geometry_msgs::Pose target_pose1; // A default pose //attached_object.object.mesh_poses[0].position.x = 0.005; attached_object.object.mesh_poses[0].orientation.w = 1.0; attached_object.object.meshes.push_back(mesh); attached_object.object.mesh_poses.push_back(attached_object.object.mesh_poses[0]); // Note that attaching an object to the robot requires // the corresponding operation to be specified as an ADD operation attached_object.object.operation = attached_object.object.ADD; moveit_msgs::CollisionObject remove_object; remove_object.id = "kinematic_t"; remove_object.header.frame_id = "base_link"; remove_object.operation = remove_object.REMOVE; // Note how we make sure that the diff message contains no other // attached objects or collisions objects by clearing those fields // first. // Carry out the REMOVE + ATTACH operation ROS_INFO("Attaching kinematic_t to motor and removing it from the world."); //planning_scene.world.collision_objects.clear(); planning_scene.world.collision_objects.push_back(remove_object); planning_scene.robot_state.attached_collision_objects.push_back(attached_object); planning_scene.is_diff = true; planning_scene_diff_publisher.publish(planning_scene); sleep_time.sleep(); ros::shutdown(); return 0; } ---- Likewise, another node to attach the other object (tool) to the robot. First I run both the nodes that add the objects to the planning scene one after the other. Then I run the nodes that attach the objects to the robot one after the other. The issue I'm facing is that when I run the node to attach the second object to the robot, the first object which was attached before disappears. This happens even though I set the flag is_diff to true (or have I got it all wrong?) Thanks!

Connect my youbot arm with the moveit simulation model in rviz

$
0
0
Hello, i created the kuka youbot(arm only) simulation model with moveit. I can control the arm without any problems. In my next step i would like to connect the simulation model with the real youbot arm and let the arm move on command in my model. I already found this: [Implement Moveit on real Robot](http://answers.ros.org/question/192739/implement-moveit-on-real-robot/). Can anybody tell me how the action server works and why i need that to control my actual arm? How do i tell the controller of each joint to rotate like in my joint_states_topic? Thanks!

moveit setup assistant segfault on jessie

$
0
0
Hey guys, I have recently tried to install and run moveit on my setup. I have a fresh ros install on updated Debian Jessie in chroot. I have installed ROS kinetic from packages and Moveit! from sources as per instructions here: http://moveit.ros.org/install/source/ . When i try to run moveit_setup_assistant it segfaults: # rosrun moveit_setup_assistant moveit_setup_assistant Segmentation fault (core dumped) GDB: Reading symbols from /root/ws_moveit/devel/lib/moveit_setup_assistant/moveit_setup_assistant...(no debugging symbols found)...done. Starting program: /root/ws_moveit/devel/lib/moveit_setup_assistant/moveit_setup_assistant __name:=moveit_setup_assistant __log:=/root/.ros/log/f3dc741a-bcc4-11e6-9836-a44e31cd9234/moveit_setup_assistant-1.log [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] Program received signal SIGSEGV, Segmentation fault. 0x00007fffcb12fdbc in ?? () from /usr/lib/x86_64-linux-gnu/libQtTest.so.4 (gdb) where #0 0x00007fffcb12fdbc in ?? () from /usr/lib/x86_64-linux-gnu/libQtTest.so.4 #1 0x00007ffff7dea9ba in call_init (l=, argc=argc@entry=3, argv=argv@entry=0x7fffffffdb98, env=env@entry=0x7fffffffdbb8) at dl-init.c:78 #2 0x00007ffff7deaaa3 in call_init (env=0x7fffffffdbb8, argv=0x7fffffffdb98, argc=3, l=) at dl-init.c:36 #3 _dl_init (main_map=0x7ffff7ffe1a8, argc=3, argv=0x7fffffffdb98, env=0x7fffffffdbb8) at dl-init.c:126 #4 0x00007ffff7ddd1ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 #5 0x0000000000000003 in ?? () #6 0x00007fffffffde2f in ?? () #7 0x00007fffffffde77 in ?? () #8 0x00007fffffffde96 in ?? () #9 0x0000000000000000 in ?? () (gdb) I have found somewhere that someone with similar problem, but with rviz, had his rviz binary linked against Qt4 and managed to fix it somehow. It seems that it might also be a case here: # ldd ./devel/.private/moveit_setup_assistant/lib/moveit_setup_assistant/moveit_setup_assistant | grep Qt libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f35ffc4d000) libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f35f0675000) libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f35eff38000) libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f35d3ee2000) libQtTest.so.4 => /usr/lib/x86_64-linux-gnu/libQtTest.so.4 (0x00007f35d3cbb000) libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f35d37cc000) Do you guys have any ideas how I can proceed with this information?

Integration of Kuka KR16 with KRC2 controller

$
0
0
Hey Recently I have started working with ROS and RSI (so I am new in this) to control a Kuka KR16-2 robot with KRC2 controller. We just installed the KSS 5.6 and RSI 2.3. I have looked on the ROS support and I found the Kuka Experimental which integrate the robot KR16, but the files for the rsi_hw_interface (https://github.com/ros-industrial/kuka_experimental/tree/indigo-devel/kuka_rsi_hw_interface) are for the KRC4 controller. I understood that for KRC4 is using the RSIVisual which (of-course) are not compatible with KRC2 (e.g. in KRC2 the folder C:\KRC\ROBOTER\Config\User\Common does not exist; RSI_CREATE is not a valid command; etc.) and that I need to convert the files from KRC4 back to KRC2. However, sine I am a baby in this I do not know from where to start and where to stop. Is there someone still working with KRC2 controller and ROS? Can you share with me the files for KRC2?

Implementing path constraints for Moveit in python

$
0
0
I have a 6 DOF arm and it has been interfaced with moveit. Now I want to move the arm from point A to point B with one of the joint having a `orientation constraint` throughout the path. There are already solutions in C++ but I need a solution in `python`. Has anyone already tried in python? Kindly help me to move ahead.

Can I run ROS jade in combination with Ubuntu snappy core?

$
0
0
Hello all, I am developing a modular robotic arm, which will consist of the following parts: - A PC running the motion planning (MoveIt & ros_control) - Embedded controllers which run the local PID loops to control the arm's joints My idea was to use SBC's (Single Board Computers) running linux as the embedded controllers, so for communication between the main PC and the embedded controllers the standard ROS infrastructure can be used. Most of these SBC's have some ARM processor, so my initial guess would be to run a stripped down ARM Ubuntu version on the SBC's. However, Canonical seems to have stopped distributing ARM versions of Ubuntu, apart from their new distribution for embedded systems: Ubuntu snappy core. This would not be an issue, since there is a nice plugin to create snappy-compatible packages out of ROS workspaces with the catkin plugin for snapcraft. (see also: [this link](https://github.com/snapcore/snapcraft/blob/master/docs/ros-snap.md)). This would generate a stand-alone application that contains all ROS (and other) dependencies and is compatible with the snappy package system. (the main issue with the snappy distribution over the old ARM distributions is that you can no longer use apt-get to retrieve needed ROS packages, so the only way to get ROS on snappy is to either create a snappy package containing the ROS nodes and dependencies, or to install ROS from source) But here is the catch: - MoveIt is released up to ROS jade, running on Ubuntu 15.04 (Vivid) (but not on later ubuntu versions) - Snapcraft is released only on Ubuntu 16.04 (Xenial), so this would correspond to ROS kinetic As far as I know, mixing two ROS distributions is not recommended, so there would be couple options to get this working: - Install MoveIt from source for kinetic on Ubuntu 16.04 (Xenial) PC: Ubuntu 16.04 + Kinetic, Embedded: Ubuntu 16.04 Snappy Core - Install ROS jade from source on Ubuntu 16.04 (Xenial) and create snappy packages from there PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core, Build PC: Ubuntu 16.04 + Jade - Install Snapcraft from source on Ubuntu 15.04 (Vivid) and create snappy packages from there PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core - Install ROS jade from source directly onto Ubuntu 16.04 Snappy Core (circumventing the snappy package system altogether) PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core + Jade from source Does any of you have any experience with this? Is this even feasible? Or would it be best to move to some other OS for the embedded controllers (one of the boards I am considering is the BeagleBone Black which can also run Debian or Angstrom for example (see also: [this link](http://elinux.org/Beagleboard:BeagleBoneBlack#Software_Resources)) which also has some unofficial ROS support). My preferred situation would be to use as much stable software as possible, preferably in the form of binary releases. Thanks in advance!

can i stop a urdf model using moveit based on signals from two ultrasonic sensors

$
0
0
I created two separate node which is subscribed to two separate ultrasonic range message individually.That is each node is subscribed to only one ultrasonic range message.Based on some threshold of ultrasonic range i stopped the urdf model from path planning. other wise it is randomly executing some path.For node 2 i gave only one condition,that is this node will not execute any trajectory but stops the robot when ultrasonic range crosses the threshold.I want to stop the robot if node2 receives stop signal while node1 is executing a trajectory.I implemented this using move it and i use **group.stop()** function to stop the robot. But the robot is not stopping . What is the reason ,can anyone help me?

Moveit-catkin build

$
0
0
Why does source installation of moveit package needs to be built with catkin build command instead of catkin_make? What is the advantage of doing so.

Getting info from failed MoveGroupCommander.plan()

$
0
0
Hello, I have one arm manipulator and i use MoveGroupCommander.plan() to plan it's trajectories. And if plan() doesn't make it - i want to know why. Is there a way to get some data like collision info (which objects were in collision most often while planning) out of planning request? I could use this info to move movable obstacle out of the way or to know that obstacles are not the case. (I looked through MoveIt API and it seems i have to do all the planning routing with my bare hands if i want this info) (All the code is in python for now, but C++ is fine too, if there's a way to achieve what i desire)
Viewing all 1441 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>