ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

rohin's profile - activity

2023-02-09 22:49:45 -0500 received badge  Good Question (source)
2020-05-05 23:03:15 -0500 received badge  Famous Question (source)
2020-02-19 13:33:04 -0500 received badge  Nice Answer (source)
2018-11-19 09:07:56 -0500 received badge  Good Question (source)
2017-10-26 00:10:31 -0500 received badge  Nice Question (source)
2017-10-17 17:05:42 -0500 received badge  Teacher (source)
2017-10-17 17:05:42 -0500 received badge  Self-Learner (source)
2017-06-16 15:22:39 -0500 received badge  Notable Question (source)
2017-06-16 15:12:20 -0500 received badge  Famous Question (source)
2017-05-31 22:45:52 -0500 received badge  Popular Question (source)
2017-04-02 04:30:56 -0500 asked a question How to integrate ROS Indigo with Qt Quick/Qt Quick Controls 2 ?

I am trying to create a smart dashboard using Qt Quick/Qt Quick Controls 2 for my robotic appliance which is based on ROS. Can anyone guide me on the best way to proceed ?

I do not want to use Qt Widget because the application is for an Embedded Product and not a Desktop.

2017-02-05 10:43:56 -0500 received badge  Famous Question (source)
2017-02-05 10:43:56 -0500 received badge  Notable Question (source)
2017-01-17 21:52:41 -0500 received badge  Notable Question (source)
2017-01-17 08:12:37 -0500 received badge  Famous Question (source)
2017-01-10 09:51:00 -0500 received badge  Famous Question (source)
2016-11-08 05:59:06 -0500 received badge  Notable Question (source)
2016-10-06 04:52:26 -0500 received badge  Popular Question (source)
2016-10-03 10:10:01 -0500 commented answer How to add multiple objects to MoveIt Planning Scene?

Thanks! That solved it!

2016-10-03 10:01:06 -0500 commented answer How to add multiple objects to MoveIt Planning Scene?

Yeah...

I was doing

co.header.frame_id = group.getPlanningFrame(); co2.header.frame_id = group.getPlanningFrame();

How should I assign different ID's?

2016-10-03 07:51:51 -0500 asked a question How to add multiple objects to MoveIt Planning Scene?

I am unable to add multiple objects to MoveIt planning scene. Using the Move Group C++ API, I do:

moveit::planning_interface::PlanningSceneInterface planning_scene_interface;
moveit_msgs::CollisionObject co, co2;

..
..
Fill in the fields of moveit_msgs co & co2

.. ..

co.operation = co.ADD;
co2.operation=co2.ADD;

std::vector<moveit_msgs::CollisionObject> collision_objects;
collision_objects.push_back(co);
collision_objects.push_back(co2) ;

ROS_INFO("Add an object into the world");
planning_scene_interface.addCollisionObjects(collision_objects);

sleep(2.0);

When I run it, only one collision object appears i.e. co2 .

I can not figure out what am I missing. Please help me out.

2016-10-03 01:47:58 -0500 received badge  Supporter (source)
2016-10-02 08:11:38 -0500 received badge  Popular Question (source)
2016-09-30 12:50:37 -0500 marked best answer Linking CXX executable error-- /usr/bin/ld: cannot find

I am building a hardware interface for my robot using the Dave Coleman's template package ros_control_boilerplate

I am having problems building my package. Relevant snippets of my CMakeLists.txt look like:

include_directories(include ${catkin_INCLUDE_DIRS})

add_library(nymble_hw_interface src/nymble_hw_interface.cpp)
target_link_libraries(nymble_hw_interface ${catkin_LIBRARIES})

add_executable(nymble_hw_control_loop src/nymble_hw_control_loop.cpp)
target_link_libraries(nymble_hw_control_loop
  nymble_hw_interface
  generic_hw_control_loop
  ${catkin_LIBRARIES})

install(TARGETS  
        nymble_hw_interface 
        LIBRARY DESTINATION
    ${CATKIN_PACKAGE_LIB_DESTINATION})

install(TARGETS
    nymble_hw_control_loop
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY include/${PROJECT_NAME}/   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})

On running catkin_make, I am getting the error

/usr/bin/ld: cannot find -lgeneric_hw_control_loop
collect2: error: ld returned 1 exit status
make[2]: *** [/home/rohin/catkin_ws/devel/lib/hardware/nymble_hw_control_loop] Error 1
make[1]: *** [nymblebot/hardware/CMakeFiles/nymble_hw_control_loop.dir/all] Error 2
make: *** [all] Error 2

I am at a loss to understand why my generic_hw_control_loop library is not being linked when it is an installed library under the package ros_control_boilerplate.

Also I have listed ros_control_boilerplate as a build and run dependency in my package.xml

The executable I'm building contains :

#include <ros_control_boilerplate/generic_hw_control_loop.h>
2016-09-30 12:49:47 -0500 marked best answer Unable to load Position Trajectory Controller

I want to control and drive a real 6-DOF robotic arm.

I have setup my Moveit configuration files using joint_trajectory_controller and MoveItSimpleControllerManager. Here is my moveit controllers.yaml file:

controller_list:
   - name: /nymblebot/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - base_swivel
      - arm_joint
      - elbow_joint
      - wrist_pitch
      - wrist_yaw
      - wrist_roll

Then I have setup my ros_control files along with hardware interfaces. Here is my ros_control hardware_controllers.yaml file:

generic_hw_control_loop:
  loop_hz: 30
  cycle_time_error_threshold: 0.01

# Settings for ros_control hardware interface
nymble_hw_interface:
   joints:
      - base_swivel
      - arm_joint
      - elbow_joint
      - wrist_pitch
      - wrist_yaw
      - wrist_roll

# Joint Trajectory Controller -------------------------------
# For detailed explanations of parameter see http://wiki.ros.org/joint_trajectory_controller
position_trajectory_controller:
   type: position_controllers/JointTrajectoryController
# These joints can likely just be copied from the hardware_interface list above

joints:     
      - base_swivel
      - arm_joint
      - elbow_joint
      - wrist_pitch
      - wrist_yaw
      - wrist_roll

# Publish all joint states ----------------------------------
# Creates the /joint_states topic necessary in ROS
joint_state_controller:
  type:         joint_state_controller/JointStateController
  publish_rate: 50

My control interface is based on Adolfo's ROSCON'14 talk. In my main executable, I instantiate a hardware interface class of my robot. Then I instantiate a control_loop class which has read(), write() as member functions and pulls info out from ROS parameter server.

Also I form an instance of the controller manager. Following this I have my main control loop which proceeds as: 1. read() 2.update() 3.write()

Unfortunately the process crashes soon after the 2.update() command. And only the joint_state_controller gets loaded.

Started ['joint_state_controller'] successfully
Traceback (most recent call last):
  File "/opt/ros/indigo/lib/controller_manager/controller_manager", line 65, in <module>
    controller_manager_interface.start_controller(c)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/controller_manager/controller_manager_interface.py", line 86, in start_controller
    return start_stop_controllers([name], True)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/controller_manager/controller_manager_interface.py", line 107, in start_stop_controllers
    resp = s.call(SwitchControllerRequest(start, stop, strictness))
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 525, in call
    raise ServiceException("transport error completing service call: %s"%(str(e)))

rospy.service.ServiceException: transport error completing service call: unable to receive data from sender, check sender's logs for details
[nymblebot/nymblebot_hardware_interface-8] process has died [pid 8763, exit code -11, cmd /home/rohin/catkin_ws/devel/lib/hardware/nymble_hw_control_loop __name:=nymblebot_hardware_interface __log:=/home/rohin/.ros/log/4856bd5a-41c5-11e6-b1dc-20689d39eac5/nymblebot-nymblebot_hardware_interface-8.log].
log file: /home/rohin/.ros/log/4856bd5a-41c5-11e6-b1dc-20689d39eac5/nymblebot-nymblebot_hardware_interface-8*.log
[nymblebot/ros_control_controller_manager-7] process has died [pid 8755, exit code 1, cmd /opt/ros/indigo/lib/controller_manager/controller_manager spawn joint_state_controller position_trajectory_controller __name:=ros_control_controller_manager __log:=/home/rohin/.ros/log/4856bd5a-41c5-11e6-b1dc-20689d39eac5/nymblebot-ros_control_controller_manager-7.log].
log file: /home/rohin/.ros/log/4856bd5a-41c5-11e6-b1dc-20689d39eac5/nymblebot-ros_control_controller_manager-7*.log

For reference here is my main control loop in my executable:

int main(int argc, char **argv)
{
    // Setup ROS
    ros::init(argc, argv, "nymblebot_hw_interface");
    ros::NodeHandle n;
// NOTE: We run the ROS loop in a separate thread as external calls such
// as service callbacks to load controllers can block the (main) control loop
ros::AsyncSpinner spinner(2);
spinner.start();

// Create the hardware interface specific to your robot
boost::shared_ptr<NymbleHW> nymble_hw_interface (new NymbleHW(n));
//nymble_hw_interface->init();

// Start the control loop
Nymble_HW_Loop control_loop(n, nymble_hw_interface);
control_loop.init();

boost::shared_ptr<controller_manager::ControllerManager> controller_manager_ ...
(more)
2016-09-30 12:49:46 -0500 commented answer Unable to load Position Trajectory Controller

Thanks! I found out that I was not setting an initial size to a std::vector which was causing the program to crash.

2016-09-30 12:48:36 -0500 received badge  Famous Question (source)
2016-09-30 12:48:09 -0500 marked best answer STRANGE ERROR! Unable to move Revolute Joints in Gazebo

I'm running : 1. ROS Indigo 2. Ubuntu 14.04 Trusty

I'm simulating a 6DOF robotic arm using ros_control and using gazebo_ros_control plugins. I'm using Joint Position Controllers.

I have set up the .yaml file containing the type of controllers. I have also added all the transmission and gazebo_ros_control tags in my URDF file.

Everything launches without any error. When I try to publish messages on /robot_arm/joint1_position_controller/command topic I'm unable to move the revolute joints. Interestingly I have two continuous joints among my 6DOF which move.

Also these movements are abrupt and not in a smooth manner. Whereas I've tried tutorials where the arm follows a smoother motion using Joint Position Controllers.

How should I get my revolute joints to move? Please help!

2016-09-30 12:46:59 -0500 marked best answer Unable to implement control on MoveIt: Parameter '~moveit_controller_manager' not specified

I am struggling to implement a joint_trajectory_controller on Moveit.

I have: 1. Set up my controllers.yaml file

controller_list:
       - name: /nymble_arm_controller
         action_ns: joint_trajectory_action
         type: FollowJointTrajectory
         default: true
         joints:
             - base_swivel
             - arm_joint
             - elbow_joint  
             - wrist_pitch
             - wrist_yaw
             - wrist_roll

2.Implemented an action server node for joint_trajectory_action interface.

Action server I have implemented is from here

3.Created a moveit_planning_execution launch file as described here

This launch file contains the required controller_manager.launch file described here

4.Created a launch file to start action server and included above launch file.

I have gone through all the similar questions asked before but none has helped me.

Will be grateful for some help.

2016-09-30 12:46:55 -0500 received badge  Popular Question (source)
2016-09-30 12:46:36 -0500 marked best answer Conflict with ROS Python and Conda

Ever since I have installed Conda, ROS does not seem to work. And predictably it is because Conda has changed my Python environment.

I run ROS Indigo on Ubuntu 14.04.

Can someone guide on how can I use both on my machine? I am willing to make changes to my system every time I want to switch from one to another.