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

TifferPelode's profile - activity

2021-07-02 01:56:28 -0500 marked best answer MultiLibraryClassLoader Error

Hello everyone,

I'm writing a rviz panel.

When I change namespace (tiffer_panel -> Tiffer) in my code, and change the PLUGINLIB_EXPORT_CLASS.

#include <pluginlib/class_list_macros.h>
PLUGINLIB_EXPORT_CLASS(Tiffer::TifferPanel,rviz::Panel )

After Compiled, when I run rviz with this panel, got this

PluginlibFactory: The plugin for class 'Tiffer' failed to load.  Error: MultiLibraryClassLoader: Could not create class of type tiffer_panel::TifferPanel

It seems not change. But when I change the namespace back (Tiffer -> tiffer_panel), it works well again...

Can someone tell me what's wrong with this?

2021-07-02 01:56:28 -0500 received badge  Self-Learner (source)
2020-12-31 02:42:53 -0500 marked best answer Can I reconfigure robot speed when navigation?

Hello everyone, now I have a task about navigation. I want my robot to have different speeds in different environments. Just like this:

  • At corridor : 0.5m/s

  • At parlor : 0.25m/s

  • etc...

    Now my question is how to reconfigure my robot's speed when navigation? This is my design step:

  • First, Navigate to a place.

  • When it finished, reconfigure robot speed.

  • Then navigate to next place.

    Can anyone tell me if it is possible?

    Or there are other way to do this?

2020-12-17 12:06:12 -0500 marked best answer Build package with system_lib not found

Hello everyone,

 I run catkin_make to build my package with this Warning:



-- +++ processing catkin package: 'katrina_gui'
-- ==> add_subdirectory(katrina_gui)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
  catkin_package() DEPENDS on 'system_lib' but neither
  'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined.
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
  katrina_gui/CMakeLists.txt:22 (catkin_package)

My Environment Is:

Ubuntu 16.04 
ROS-Kinetic

I run this package under ROS-Indigo before, how can i fix this?

2020-05-20 17:36:12 -0500 received badge  Nice Answer (source)
2020-05-17 15:53:47 -0500 received badge  Self-Learner (source)
2020-04-15 14:32:12 -0500 marked best answer undefined symbol when loading custom rviz panel

Hello everyone,

I have some question when i write a panel for Rviz, when i add a extra .h file for my project. After CATKIN_MAKE with no Error, when i add it in Rviz, it show me this :

PluginlibFactory: The plugin for class 'Tiffer' failed to load.  Error: Failed to load library /home/tiffer/tiffer-catkin/devel/lib/libtiffer_panel.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = /home/tiffer/tiffer-catkin/devel/lib/libtiffer_panel.so: undefined symbol: _ZN12tiffer_panel18CruiseLocationTool12onInitializeEv)

But I had add it in cpp, I use Kinetic under Ubuntu 16.04.

When I remove this .h file from my project, my panel works well again. Can someone tell my what's wrong with it?

Here is my .h file:

#ifndef TIFFER_CRUISELOCATION_H
#define TIFFER_CRUISELOCATION_H

#ifndef Q_MOC_RUN

#include <ros/ros.h>
#include "rviz/default_plugin/tools/pose_tool.h"

#endif

#include <QObject>
#include <QInputDialog>

using namespace rviz;

namespace tiffer_panel
{
    class Arrow;
    class DisplayContext;
    class StringProperty;

    class CruiseLocationTool : public PoseTool
    {
        Q_OBJECT
        public:
            CruiseLocationTool();
            virtual void onInitialize();

        protected:
            virtual void onPoseSet(double x, double y, double theta);

        private Q_SLOTS:
            void updateTopic();

        private:
            ros::NodeHandle nh_;
            ros::Publisher pub_;
    };    
}
#endif
2019-03-19 13:35:09 -0500 received badge  Famous Question (source)
2019-01-11 12:49:49 -0500 marked best answer TF2 lookupTransform problem in Qt5

When I was writing a Qt5 widget use tf2, I got all zero when print Translation and Rotation.

I reviewed some similar questions and modified my program, it was written inside the UI's constructor, just like this:

tf2_ros::TransformListener tfListener(tfBuffer, nh_);

connect(ui->testButton, SIGNAL(clicked()), this, SLOT(testTf2()));

try{
    if(tfBuffer.canTransform("map", "base_link", ros::Time::now(), ros::Duration(1)))
        ts = tfBuffer.lookupTransform("map", "base_link", ros::Time::now(), ros::Duration(0));
} catch (tf2::TransformException &ex) {
    ROS_WARN("%s", ex.what());
}

And in testTf2(), I print ts.

qDebug() << ts.transform.translation.x;
qDebug() << ts.transform.rotation.w;
etc.

I had set the target_time and time_out param, and in case, add a canTransform func, but still got 0.

With rosrun tf tf_echo map base_link print:

- Translation: [-0.478, 0.148, 0.017]
- Rotation: in Quaternion [0.000, 0.000, -0.802, 0.597]
            in RPY (radian) [0.000, 0.000, -1.862]
            in RPY (degree) [0.000, 0.000, -106.708]

I also run rosrun tf2_tools view_frames.py, it seems good.

image description

I want to know if my method is wrong, or the parameters set are wrong?

2019-01-11 12:47:25 -0500 received badge  Famous Question (source)
2019-01-11 12:47:25 -0500 received badge  Notable Question (source)
2018-11-21 23:11:29 -0500 received badge  Famous Question (source)
2018-10-25 14:00:36 -0500 received badge  Famous Question (source)
2018-10-03 07:36:51 -0500 received badge  Famous Question (source)
2018-09-25 09:34:52 -0500 received badge  Notable Question (source)
2018-09-04 08:08:29 -0500 received badge  Famous Question (source)
2018-08-22 11:05:39 -0500 received badge  Popular Question (source)
2018-08-22 11:05:39 -0500 received badge  Notable Question (source)
2018-08-06 06:08:20 -0500 received badge  Necromancer (source)
2018-08-06 06:08:20 -0500 received badge  Teacher (source)
2018-06-30 06:28:56 -0500 commented answer TF2 lookupTransform problem in Qt5

lookupTransform("map", "base_link", ros::Time::now(), ros::Duration(1)); It delay for 0.15s, how can I deal with it? L

2018-06-30 06:28:13 -0500 commented answer TF2 lookupTransform problem in Qt5

lookupTransform("map", "base_link", ros::Time::now(), ros::Duration(1)); It delay for 0.15s, how can I deal with it? `

2018-06-30 06:27:59 -0500 commented answer TF2 lookupTransform problem in Qt5

lookupTransform("map", "base_link", ros::Time::now(), ros::Duration(1)); It delay for 0.15s, how can I deal with it? `

2018-06-30 06:25:42 -0500 commented answer TF2 lookupTransform problem in Qt5

it delay for 0.15s, how can I deal with it? [ WARN] [1530356857.871087341]: Lookup would require extrapolation into the

2018-06-30 06:25:35 -0500 commented answer TF2 lookupTransform problem in Qt5

it delay for 0.15s, how can I deal with it? [ WARN] [1530356857.871087341]: Lookup would require extrapolation into the

2018-06-30 06:25:13 -0500 commented answer TF2 lookupTransform problem in Qt5

it delay for 0.15s, how can I deal with it?

2018-06-30 06:24:26 -0500 commented answer TF2 lookupTransform problem in Qt5

it delay for 0.15s, how can I deal with it?

2018-06-30 04:55:14 -0500 commented answer TF2 lookupTransform problem in Qt5

Thank you for your detailed explanation. In fact if I change the Duration parameter in canTransform,it throw out a time

2018-06-30 04:19:24 -0500 received badge  Popular Question (source)
2018-06-29 08:17:15 -0500 received badge  Notable Question (source)
2018-06-28 04:10:23 -0500 answered a question GUI creation through rqt

Hello Vincenz, I suggest you use connect, with SIGNAL and SLOT. here is a part of my code. In constructor : QPushButt

2018-06-28 03:36:27 -0500 received badge  Notable Question (source)
2018-06-28 03:36:27 -0500 received badge  Famous Question (source)
2018-06-28 03:34:11 -0500 asked a question TF2 lookupTransform problem in Qt5

TF2 lookupTransform problem in Qt5 When I was writing a Qt5 widget use tf2, I got all zero when print Translation and Ro

2018-06-27 21:47:30 -0500 commented answer data.data does not name a type

I think you may put this in your .h file, try put them at ,cpp file and compile again.

2018-06-26 22:31:28 -0500 received badge  Popular Question (source)
2018-06-26 09:52:59 -0500 commented answer Tf to tf2 upgrade adaptation problem

Thank you for your detailed explanation, it really wake me up.

2018-06-26 09:49:31 -0500 marked best answer Tf to tf2 upgrade adaptation problem

Hello everyone,

I wanna update tf to tf2 in my code, but get some question about it.

There are tf part :

tf::TransformListener listener;
tf::StampedTransform transform;
try
{
    listener.waitForTransform("/map", "/base_link", ros::Time::now(), ros::Duration(2));
    listener.lookupTransform("/map", "/base_link", ros::Time(0), transform);
}
catch(tf::TransformException ex)
{
    ROS_ERROR("%s", ex.what());
    ros::Duration(1.0).sleep();
    QMessageBox::information(this, "Error", QString::fromStdString(ex.what()));
    return ;
}
geometry_msgs::Transform tt;
tf::transformTFToMsg(transform, tt);
pose.position.x = tt.translation.x;
pose.position.y = tt.translation.y;
pose.position.z = tt.translation.z;
pose.orientation.x = tt.rotation.x;
pose.orientation.y = tt.rotation.y;
pose.orientation.z = tt.rotation.z;
pose.orientation.w = tt.rotation.w;

pose is a parameter, via geometry_msgs::Pose &pose

When I follow the doc to update to tf2, I get some wrong.

There are tf2 part:

tf2_ros::Buffer tfBuffer;
tf2_ros::TransformListener tfListener(tfBuffer);
geometry_msgs::TransformStamped transformStamped;

try
{
    transformStamped = tfBuffer.lookupTransform("/map", "/base_link", ros::Time(0));
}
catch (tf2::TransformException &ex){
    ROS_WARN("%s", ex.what());
    ros::Duration(1.0).sleep();
}
geometry_msgs::Transform tt;
tf::transformTFToMsg(transformStamped, tt);

I Don't know how to transfrom data under tf2, and I didn‘t find the relevant function in doc.

I want to know how to modify my code to achieve the same result?

Is there a function just like transformTFToMsg I can replace?

2018-06-26 04:09:54 -0500 asked a question Tf to tf2 upgrade adaptation problem

Tf to tf2 upgrade adaptation problem Hello everyone, I wanna update tf to tf2 in my code, but get some question about

2018-06-23 12:06:46 -0500 received badge  Notable Question (source)
2018-06-11 00:01:00 -0500 received badge  Famous Question (source)
2018-06-10 21:51:12 -0500 commented question How to create our own global planner

There is Github Project which achieved a global planner, you can refer this.