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

unable to move arm with moveit!

$
0
0
On kinetic, Ubuntu 16.04, trying to make the arm of my robot move a little bit. the code: bool run_script(){ moveit::planning_interface::MoveGroupInterface move_group("arm"); geometry_msgs::Pose target_pose1; target_pose1.orientation.w = 1.0; target_pose1.position.x = 0.28; target_pose1.position.y = -0.7; target_pose1.position.z = 1.0; move_group.setPoseTarget(target_pose1); move_group.move(); return true; } The log: [ INFO] [1515508915.187395653, 2305.704000000]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline. [ INFO] [1515508915.187550137, 2305.704000000]: Planning attempt 1 of at most 1 Debug: Starting goal sampling thread [ INFO] [1515508915.188247424, 2305.704000000]: Planner configuration 'arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed. Debug: The value of parameter 'longest_valid_segment_fraction' is now: '0.0050000000000000001' Debug: The value of parameter 'range' is now: '0' Debug: RRTConnect: Planner range detected to be 4.610440 Info: RRTConnect: Starting planning with 1 states already in datastructure Debug: RRTConnect: Waiting for goal region samples ... Debug: Beginning sampling thread computation Error: RRTConnect: Unable to sample any valid states for goal tree at line 215 in /tmp/binarydeb/ros-kinetic-ompl-1.2.1/src/ompl/geometric/planners/rrt/src/RRTConnect.cpp Info: RRTConnect: Created 1 states (1 start + 0 goal) Info: No solution found after 5.007760 seconds Debug: Attempting to stop goal sampling thread... Debug: Stopped goal sampling thread after 0 sampling attempts [ INFO] [1515508920.215263508, 2309.500000000]: Unable to solve the planning problem I even tried getting the current pose and change it a little: bool run_script(){ moveit::planning_interface::MoveGroupInterface move_group("arm"); geometry_msgs::PoseStamped pose1 = move_group.getCurrentPose(); pose1.pose.position.x = pose1.pose.position.x + pose1.pose.position.x/4; move_group.setPoseTarget(pose1); move_group.move(); return true; } If you need anymore info let me know.

MoveIt: how to actuate individual joints that do not form a chain?

$
0
0
Hi, I'm working on a project at my university in which we are designing and simulating an industrial robot system. We have created a URDF file that contains the robot system, as well as the platform it sits on. There are also two movable caterpillar tracks on this platform, which we need to be able to control programmatically. We've created a MoveIt configuration for the robotic arm that the robot system consists of, which works properly. To give you a bit of an image (literally) of how the system and the tracks look like: ![overview](/upfiles/15155368113219135.png) ### Question: My problem arises when I want to control the two movable tracks, which each consist of just a single joint. The relevant parts of the robot's URDF are included below; for brevity, I left out the rest. I want to be able to control the individual joints `track2_joint` and `track3_joint` from Python, but I have not yet been able to find out how... ### My attempts I've tried to make a planning group with just `track2_joint` in it without selecting a kinematics solver, hoping that I would be able to use `group.set_joint_value_target` in order to get easy control over the track. The MoveIt Setup Assistant allowed me to do so, so I tried it out in some code, here's the relevant snippet: robot = moveit_commander.RobotCommander() joint = robot.get_joint('track2_joint') moveGroup = moveit_commander.MoveGroupCommander('Track2') currentJointValues = moveGroup.get_current_joint_values() print("Min bound: " + str(joint.min_bound())) print("Value: " + str(currentJointValues)) print("Max bound: " + str(joint.max_bound())) currentJointValues[0] += pi * 1/3 moveGroup.set_joint_value_target(currentJointValues) moveGroup.plan() This seemed to work fine. The print statements printed the correct values and `plan` caused the correct rotation to be shown in RViz. But when I replaced `plan()` with `go()`, I got the following message in the console in which I launched the test: `[ INFO] [1515523071.981027951]: ABORTED: Solution found but controller failed during execution` The following appeared in the console in which I launched the planning execution launch file: [ INFO] [1515523071.563018404]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline. [ INFO] [1515523071.563289980]: Planning attempt 1 of at most 1 Debug: Starting goal sampling thread Debug: Waiting for space information to be set up before the sampling thread can begin computation... [ INFO] [1515523071.564900737]: Planner configuration 'Track2' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed. Debug: RRTConnect: Planner range detected to be 1.256640 Info: RRTConnect: Starting planning with 1 states already in datastructure Debug: RRTConnect: Waiting for goal region samples ... Debug: Beginning sampling thread computation Debug: Stopped goal sampling thread after 10 sampling attempts Debug: RRTConnect: Waited 0.010084 seconds for the first goal sample. Info: RRTConnect: Created 5 states (2 start + 3 goal) Info: Solution found in 0.012115 seconds Info: SimpleSetup: Path simplification took 0.001880 seconds and changed from 4 to 17 states [ERROR] [1515523071.662697635]: Joint trajectory action failing on invalid joints [ WARN] [1515523071.663024659]: Controller failed with error code INVALID_JOINTS [ WARN] [1515523071.663147109]: Controller handle reports status FAILED I suspected it was most likely due to the fact that I had not specified a kinematic solver, so I thought I'd just select the default KDLKinematicsPlugin, but that gave me the following error while launching the planning execution file: [ERROR] [1515523523.939177828]: Group 'Track2' is not a chain [ERROR] [1515523523.939227171]: Kinematics solver of type 'kdl_kinematics_plugin/KDLKinematicsPlugin' could not be initialized for group 'Track2' [ERROR] [1515523523.940096000]: Kinematics solver could not be instantiated for joint group Track2. Defining the planning group 'Track2' as a chain from `base_link` to `track2_link` was not able to solve that either. I have been scouring the internet to find another way in which I can actuate a single joint, but I cannot seem to find any good way. [This question](https://answers.ros.org/question/277370/how-to-move-specific-joint-only-using-moveit/) suggests setting up a "JointModelGroup" in the SRDF for each single joint, which seems to correspond with just creating a planning group in the setup assistant like I tried earlier. The answer to another question I found suggested the same thing. I've also seen several suggestions towards the `RobotState` class, but that does not exist in Python. I believe its Python equivalent is RobotCommander though, which is where I can get the joint from as shown in my earlier snippet. The joint object that is returned apparently also has a `move` method, but that just tries to retrieve the group it is in, set a joint value target on that and then call its `go()` method, which is the very thing that failed earlier. Relevant parts of the URDF: My `controllers.yaml` file: controller_list: - name: "" action_ns: joint_trajectory_action type: FollowJointTrajectory joints: [cart1_joint, main1_joint, elbow1_joint, forearm1_joint, wrist1_joint, gripper1_joint] So, how do I get this done? Is it still possible with MoveIt planning groups, or is there another way in which this should be done? I also need this in order to be able to control the different parts of the gripper at the end of the arm.

Library for planningContext

$
0
0
Hi, i'm trying to implement a method for move my ur10 by joints from cartesian path. I have a problem when I try to do this istruction:

planning_interface::PlanningContextPtr context = planner_instance->getPlanningContext(planning_scene, req, res.error_code_); The compilator doesn't find the library for planner_instance->getPlanningContext. Can you say me how library I must to include in my code? Thank you all.

List MoveGroup Names

$
0
0
Using **moveit**, is there a way to list all available *MoveGroup* names?

How to avoid the axis jumping when the orientation is constrainted

$
0
0
Hi Now the end-effector's orientation constraints is implemented in my offline simulation in Moveit. It can be seen that the orientation of end-effector is keeping horizontal to the ground. But during the motion, several axis of UR-10 jumps anyway. So do you guys know how to avoid the unexpected pose? [video!!!!!!!!!!](https://www.youtube.com/watch?v=2GAVLup7PWE) On the other hand, i am using Trac IK to UR-10 and the solve_type is inevitably set as 'speed', which has been changed as 'distance' in `kinematics.yaml`, when running the c++ code. Will this setting affects the axis jumping? [ INFO] [1511333074.249636452]: Looking in private handle: /move_group_interface_tutorial for param name: arm/position_only_ik [ INFO] [1511333074.250346507]: Looking in private handle: /move_group_interface_tutorial for param name: arm/solve_type [ INFO] [1511333074.251106283]: Using solve type Speed

Change Interactive Markers in MoveIt-generated package

$
0
0
I successfully created a simple working model of a robot with URDF using the MoveIt setup assistant (ROS Indigo). My model is visible in this image ![image description](/upfiles/15156692221524383.png) There are 3 boxes (red, blue, green) with their joints that can revolute, a fixed cylinder (grey) and another cylinder (yellow). In theory there is a joint that allow the yellow cylinder to spin around its vertical axis, rotating on the grey cylinder. The problem is that I can grab only the end of the group (the purple ball is where the marker is set): the marker's arrows (blue and red) allow me to move the end of the robot but never involving the rotation of the yellow cylinder. The problem is that my robot has less of 6 DOF? The problem is that the direction of displacement is always orthogonal to the rotation axis of the cylinder? What about these (maybe wrong) ideas: a) change the maker type like [this one](http://wiki.ros.org/rviz/Tutorials/Interactive%20Markers%3A%20Basic%20Controls#A6-DOF_.28Arbitrary_Axes.29)? How can I add it into MoveIt-geneated package? I read the gnerated files but I didn't found any lines about the marker generation. b) split my robot in more groups? It will solve the problem? Will the planner work in the same way? Thanks for any hints!

MoveIt doesn't assume the initial pose in RViz

$
0
0
I have modified the fake_controllers.yaml in my robot config package as described [here](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/fake_controller_manager_tutorial.html). It has this final state: controller_list: - name: fake_manipulator_controller joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint - name: fake_endeffector_controller joints: [] initial: - group: manipulator pose: home And modified the SRDF file to add a new `group_state` omitting the joint elements here: ... When I run `roslaunch ur5_moveit_config demo.launch` the robot doesn't take the initial *home* pose as I defined it. Although I can select *home* in the *Select goal state* dropdown menu and clicking *update* changes the goal state to the pose I defined in the SRDF file. ![image description](/upfiles/15157731052025217.png) Can you point me what I may be missing? I'm running ros-kinetic on Ubuntu 16.04. The robot is ur5 and I use the provided ur5_moveit_config package.

[MoveIt!] The implementation of MoveGroupInterface sends a move_group/goal message with empty start_state.joint_states values

$
0
0
Given a pose for a joint with the implementation result in a 'No Motion Plan Found..' but given the same pose with Rviz it execute successfully. [I Follow this Moveit! tutorial for the implementation](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/pr2_tutorials/planning/src/doc/move_group_interface_tutorial.html#planning-to-a-pose-goal) but using an AsyncSpinner for the move_group.getCurrentState().. to fetch the current robot state Trying to figure out why is this behavior I check the move_group/goal and compare the implementation and Rviz and notice that the start_state.joint_state is always empty but there is no Error message from move_group either from the implementation, so I believe that it fetch the current robot state

Jerky movements of UR10 robot with ur_modern_driver and MoveIt

$
0
0
We have a problem with sometimes jerky moves of UR10 (and UR3 before). We are controlling our UR10 robot via MoveIt + ur_modern_driver combination. All works generally well, trajectories are planned and moves are smoothly executed. We have however problem that quite often the move has some "jerky" slow-downs/pauses. Robot slows down for a brief moment and then catches up - the moves are then not smooth. It does not happen continuously - generally move is smooth, but with longer moves it can happen once/twice during path execution. It seems that the modern driver uses 125Hz interface and generates quite a lot of traffic, which we suspect might be the cause. Seems that jerkyness increses if we run some CPU-intensive/rostopic intensive ROS nodes (like gazebo). We are running the whole ROS environment in a docker container with --network=host and --privileged on fairly fast 8 core machine with plenty of RAM. We had similar problems with UR3 before. We have not yet deeply investigated (we are going to) - but before we do, maybe someone had similar problems and know possible reasons ?

follow_joint_trajectory/joint_states

$
0
0
can anyone help me for "writing follow_joint_trajectory/joint_states " node so that i can interface my RC Servo motor with Arduino . i am making my own Robotic arm with Arduino and want to interface it with ROS (mainly MoveIt) . so if any one have any idea please help me ....

Unmet dependencies for fetch gazebo simulator and moveit

$
0
0
I'm running Ubuntu 14.04. Previously, I had the fetch gazebo simulator and moveit packages installed. Recently, I have not been able to run or reinstall them. The error messages that I have been seeing are related to unmet dependencies. I've tried running sudo apt-get install -f to try and fix the dependency issues but the problem has not been resolved. What other things should I try to fix the issue? Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: ros-indigo-fetch-moveit-config : Depends: ros-indigo-moveit-ros-visualization but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Lynxmotion AL5D arm interfacing with MoveIt

$
0
0
i have one lynxmotion AL5D arm and i want to use that with ROS mainly with moveIt . any one help me how i can do this ? even i have my own Urdf file that i can visualize in Rviz . if any one have any link or knowledge please share with me so that i can complete my this project.

MoveIt stop command usage

$
0
0
Hello, I want to stop a UR5 while it is executing a movement. Now, I have three different scripts. One which sends information like coordinates and variables. One which makes the UR5 execute a movement and the third script should stop the robot. My question is now, how can I stop the robot. I found a command which should stop it. I've read on some forum that it should work with some delay. void moveit::planning_interface::MoveGroup::stop (void) So my question basically is: How do I implement this void in my code in such a way that I can make the UR5 stop. This is what I currently have. #include #include #include #include #include class StopRobot { public: int a; int counter; void stop(void); void PublishCoordinatesCallback(const ur5_inf3480::Coor msg); }; void StopRobot::PublishCoordinatesCallback(const ur5_inf3480::Coor msg) { a = msg.a; counter = msg.counter; } void StopRobot::stop(void) { moveit::planning_interface::MoveGroup::stop(); } int main(int argc, char **argv) { ros::init(argc, argv, "coordinates"); ros::NodeHandle nh; ros::Rate loop_rate(30); StopRobot sr; ros::Subscriber sub = nh.subscribe("coordinates", 1000, &StopRobot::PublishCoordinatesCallback, &sr); int a = sr.a; int counter = sr.counter; while (ros::ok()) { a = sr.a; loop_rate.sleep(); ros::spinOnce(); if (a == 0) { sr.stop(); } } return 0; } When I catkin_make the code like this it says that I can't call a member function without an object. I have tried to do different sorts of code but every code gives another error. So I'm a bit stuck now on how the usage of this certain command is. Could someone please help me on this. Thank you.

ERROR: cannot launch node of type [ur5_inf3480/inf3480_move_robot]

$
0
0
Hi, i follow exactly this guys package(https://github.com/jmiseikis/ur5_inf3480) in ROS indigo environment. After runing roslaunch ur5_inf3480 ur5_launch_inf3480.launch, the following error occurred in the terminal. It is the only error among all the lines. ***ERROR: cannot launch node of type [ur5_inf3480/inf3480_move_robot]: can't locate node [inf3480_move_robot] in package [ur5_inf3480].*** But the ur5 did pop up in RVIZ and could be controlled through Joint State Publisher. I am wondering how to fix this error and how to make file inf3480_move_robot.cpp run to make the robot move according to this script. In short, I want to figure out how to run file nf3480_move_robot.cpp successfully in his package. Thank you so much. The site for the package I followed: https://github.com/jmiseikis/ur5_inf3480

MoveIt planning: How can I get a collision distance field from a PlanningScene?

$
0
0
Given a [moveit::core::RobotModel](https://github.com/ros-planning/moveit/blob/kinetic-devel/moveit_core/robot_model/include/moveit/robot_model/robot_model.h#L72) that is constructed from a URDF and an SRDF, I init a [planning_scene::PlanningScene](https://github.com/ros-planning/moveit/blob/kinetic-devel/moveit_core/planning_scene/include/moveit/planning_scene/planning_scene.h). I would like to use these two objects to compute the distance to the nearest obstacle for each robot link. I've been trying to follow the [CHOMP implementation](https://github.com/ros-planning/moveit/tree/kinetic-devel/moveit_planners/chomp), because I know their trajectory optimization uses a signed distance field to compute collision costs, but it's difficult to see where, and how it integrates with PlanningScene.

MoveIt only moves one joint

$
0
0
I am facing issues when trying to move more than one joint. I am following the MoveIt tutorial for Python but adding more than one joint, in example: group_variable_values = group.get_current_joint_values() # shoulder_pan_joint group_variable_values[0] = 0.0 #shoulder_lift_joint group_variable_values[1] = 0.0 #elbow_joint group_variable_values[2] = 0.0 #wrist_1_joint group_variable_values[3] = 0.0 #wrist_2_joint group_variable_values[4] = 2.57 #wrist_3_joint group_variable_values[5] = -3.14 group.set_joint_value_target(group_variable_values) plan = group.plan() rospy.sleep(5) group.execute(plan) I have looked at https://answers.ros.org/question/273732/moveit-move-only-one-joint/ and it seems I am trying to accomplish the same goal but the answer seems to be my current implementation (unless there is an equivalent of `move` in Python and I should not be using `execute`) It is probably worth noting I am using universal_robot library and the model of UR5. The group which I am modifying is `group = moveit_commander.MoveGroupCommander("manipulator")` As it stands with the above implementation only one joint moves, I would like for all the joints to move. Is there something I am doing wrong in the above?

MoveIt planner: get collision distance field from PlanningScene

$
0
0
Given a [moveit::core::RobotModel](https://github.com/ros-planning/moveit/blob/kinetic-devel/moveit_core/robot_model/include/moveit/robot_model/robot_model.h#L72) that is constructed from a URDF and an SRDF, I init a [planning_scene::PlanningScene](https://github.com/ros-planning/moveit/blob/kinetic-devel/moveit_core/planning_scene/include/moveit/planning_scene/planning_scene.h). I would like to use these two objects to compute the distance to the nearest obstacle for each robot link. I've been trying to follow the [CHOMP implementation](https://github.com/ros-planning/moveit/tree/kinetic-devel/moveit_planners/chomp), because I know their trajectory optimization uses a signed distance field to compute collision costs, but it's difficult to see where, and how it integrates with PlanningScene.

Python Forward Kinematics

$
0
0
How can I perform forward kinematics in python? Can I use MoveItCommander to perform forward kinematics? I don't see analogous classes/functions as exist in the C++ kinematics API. Similar questions have suggested using `pykdl_utils` instead, but I see that that package last existed in hydro. I also imagine that the package `python_orocos_kdl` has the functionality, but I'm having trouble finding useful documentation.

UR5 Jogging using Jacobian

$
0
0
I am not sure if this is the right place for this question, but here it is : Based on the suggestions I found in the forums I am trying to get UR5 to jog. I have set the type of arm_controller : type: velocity_controllers/JointTrajectoryController So I am guessing, it needs only velocity commands. Here is the code till now : const std::vector joint_names = jmg->getActiveJointModelNames(); ros::Rate loop_rate(5); while(ros::ok()) { Eigen::MatrixXd jacobian = group->getCurrentState()->getJacobian(jmg); std::cout << "jacobian : " << jacobian << std::endl; Eigen::VectorXd ee_vel(6); ee_vel << -1.0, 0.0, 0.0, 0.0, 0.0, 0.0; std::cout << "ee vel : " << ee_vel << std::endl; Eigen::VectorXd joint_vel = jacobian.inverse() * ee_vel; std::cout << "joint vel : " << joint_vel << std::endl; control_msgs::FollowJointTrajectoryGoal goal; goal.trajectory.joint_names = joint_names; goal.trajectory.points.resize(1); goal.trajectory.points[0].positions.resize(6); std::vector joint_vals = group->getCurrentJointValues(); for (int i = 0; i < 6; ++i) { goal.trajectory.points[0].positions[i] = joint_vals[i]; } goal.trajectory.points[0].velocities.resize(6); for (size_t j = 0; j < 6; ++j) { goal.trajectory.points[0].velocities[j] = joint_vel[j]; } // To be reached 1 second after starting along the trajectory goal.trajectory.points[0].time_from_start = ros::Duration(0.0); goal.trajectory.header.stamp = ros::Time::now(); traj_client->sendGoal(goal); loop_rate.sleep(); } I get a message saying : [ INFO] [1475846670.761351237]: Received new trajectory execution service request... [ INFO] [1475846670.761755780]: on_goal [ INFO] [1475846670.981847762]: Execution completed: SUCCEEDED [ INFO] [1475846672.982605141]: on_goal But then the ur_driver crashes during the first loop. Even though UR5 driver is capable of streaming joint data, In ur_driver.cpp URDriver::setSpeed(...) since there's no controller to support that, I am sending a joint trajectory with only one point in it. The first few messages on ´/follow_joint_trajectory/goal´ are : header: seq: 0 stamp: secs: 1476096642 nsecs: 351799456 frame_id: '' goal_id: stamp: secs: 1476096642 nsecs: 351800506 id: goal: trajectory: header: seq: 0 stamp: secs: 1476096642 nsecs: 351783927 frame_id: '' joint_names: ['shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint'] points: - positions: [-0.33116084734071904, -1.6651738325702112, -1.6492660681353968, 3.313994884490967, -1.9009583632098597, 1.5703166723251343] velocities: [-0.7625009696124342, 2.0051739782259315, -2.213010444549463, 0.20772017660027928, -0.7625008941085881, -0.00035870155518285494] accelerations: [] effort: [] time_from_start: secs: 0 nsecs: 0 path_tolerance: [] goal_tolerance: [] goal_time_tolerance: secs: 0 nsecs: 0 --- header: seq: 1 stamp: secs: 1476096642 nsecs: 551965302 frame_id: '' goal_id: stamp: secs: 1476096642 nsecs: 551965571 id: /cont_replan-3-1476096642.551965571 goal: trajectory: header: seq: 0 stamp: secs: 1476096642 nsecs: 551939357 frame_id: '' joint_names: ['shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint'] points: - positions: [-0.3311851660357874, -1.6651976744281214, -1.6492541472064417, 3.314030647277832, -1.9010065237628382, 1.5701848268508911] velocities: [-0.7625342648492489, 2.0051424575369525, -2.2130284353503162, 0.2077758962011466, -0.7625341972159444, -0.0003395046112384696] accelerations: [] effort: [] time_from_start: secs: 0 nsecs: 0 path_tolerance: [] goal_tolerance: [] goal_time_tolerance: secs: 0 nsecs: 0 --- Is my approach correct or is there a better way to do it? And why does the driver crash?

Moveit: getCurrentJointValues() won't update

$
0
0
Setup: ubuntu 14.04 LTS, ROS indigo, moveit, youbot in vrep simulator Problem Description: I have a node from vrep publishing to topic /joint_states. Then I run the demo.launch from config pkg, commenting out the joint_state_publisher node. Finally, when I test my own code, calling the getCurrentJointValues() function, the returned joint values stay the default values not updated. The code I write is very similar to Move Group Interface Tutorial. moveit::planning_interface::MoveGroup group("youbot_arm"); moveit::planning_interface::MoveGroup::Plan my_plan; moveit::planning_interface::PlanningSceneInterface planning_scene_interface; std::vector group_variable_values; group.startStateMonitor(); group_variable_values = group.getCurrentJointValues(); while(1){ ROS_INFO_STREAM("current joint value:"); for(int k = 0;k < group_variable_values.size();k++){ ROS_INFO_STREAM(group_variable_values[k]<<","); } sleep(3.0); } From the output of rostopic echo /joint_states, I get the joint position for "arm_joint_1". "arm_joint_2", "arm_joint_3", "arm_joint_4", "arm_joint_5" are 0.8, 0, 0, 0, 0. However, I get 2.94961, 1.35263, -2.59181, 0, 0 from my program, which is a default value I believe. Also, the rviz bring up by demo.launch indeed can show the correct current position of the robot, can the gui planning module works just fine. I just can't access the current state from code. Can anyone tell me any possible directions I should go? Thank you very much! wei
Viewing all 1441 articles
Browse latest View live