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

tnduf1144's profile - activity

2013-11-09 06:24:45 -0500 received badge  Famous Question (source)
2012-09-12 03:43:43 -0500 received badge  Notable Question (source)
2012-09-11 22:44:49 -0500 received badge  Popular Question (source)
2012-09-11 20:06:20 -0500 asked a question Parameter 'joints' is not an array

I see the this code.

and execution.

#include <actuator_array_example/example1_driver.h>



namespace actuator_array_example

{



/* ******************************************************** */

Example1Driver::Example1Driver()

{

  // For normal drivers, you would read custom configuration settings from the parameter

  // server here. Common examples include the port name over which you are communicating,

  // or the baud rate for the serial port. For this very simple example, we don't actually

  // need any additional configuration.



  // For this first, simple example, we will call the convenience init() script of the

  // base class. This sets up the list of joints, subscribes to needed topics, advertises

  // services, and calls the custom init_actuator_ function each actuator

  ActuatorArrayDriver::init();



  // Now create the array of simulated actuators

  for(unsigned int i = 0; i < command_msg_.name.size(); ++i)

  {

    // For this first, simple example we will use the default parameters for joint limits,

    // velocity, etc. provided by the DummyActuator Class

    actuators_[i] = DummyActuator();

  }

}



/* ******************************************************** */

Example1Driver::~Example1Driver()

{

}



/* ******************************************************** */

bool Example1Driver::read_(ros::Time ts)

{

  // Calculate the time from the last update

  double dt = (ts - previous_time_).toSec();



  // Loop through each joint and request the current status

  // Note: The base class functions ensure the same joint order in

  // both the 'command' message and the 'joint_state' message

  for (unsigned int i = 0; i < joint_state_msg_.name.size(); ++i)

  {

    // Update the simulated state of each actuator by dt seconds

    actuators_[i].update(dt);



    // Query the current state of each actuator

    joint_state_msg_.position[i] = actuators_[i].getPosition();

    joint_state_msg_.velocity[i] = actuators_[i].getVelocity();

    joint_state_msg_.effort[i]   = actuators_[i].getMaxTorque();

  }



  joint_state_msg_.header.stamp = ts;

  previous_time_ = ts;



  return true;

}



/* ******************************************************** */

bool Example1Driver::command_()

{

  // Loop through each joint in the command message and send the

  // corresponding servo the desired behavior

  for (unsigned int i = 0; i < command_msg_.name.size(); ++i)

  {

    actuators_[i].setVelocity(command_msg_.velocity[i]);

    actuators_[i].setPosition(command_msg_.position[i]);

  }



  return true;

}



/* ******************************************************** */

bool Example1Driver::stop_()

{

  // Loop through each joint and send the stop command

  for (unsigned int i = 0; i < command_msg_.name.size(); ++i)

  {

    // Update the simulated state of each actuator by dt seconds

    actuators_[i].stop();

  }



  return true;

}



/* ******************************************************** */

bool Example1Driver::home_()

{

  // Loop through each joint and send the home command

  for (unsigned int i = 0; i < command_msg_.name.size(); ++i)

  {

    // Update the simulated state of each actuator by dt seconds

    actuators_[i].home();

  }



  return true;

}



} // end namespace actuator_array_example







/* ******************************************************** */

int main(int argc, char** argv)

{

  ros::init(argc, argv, "example1_driver");



  // Create an Example1 Driver Object

  actuator_array_example::Example1Driver driver;



  // Put the driver in an infinite read-publish loop using the base class's 'spin' function

  driver.spin();



  return 0;

}

but, error

[ WARN] [1347388585.420279693]: Parameter 'joints' is not an array

Parameters. do I need to enter something?