Missing rosdep definitions

Hi

I’ve been building this for ros2 iron on Ubuntu 22.04.

Have had to update edifice to be on the version: harmonic and modify other parameters, etc for ROS iron.

However, on running the rosdep step below:
rosdep install --from-path src -yi --rosdistro iron

I get the following errors.

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:
lss_ros2_control: Cannot locate rosdep definition for [humanoid_model_msgs]
lss_arm_moveit: Cannot locate rosdep definition for [ign_ros2_control]
lss_ign_moveit_example: Cannot locate rosdep definition for [ign_ros2_control]

Can you please help?

Regards

@vjmn Welcome to the RobotShop Community. We’ll see fi we can bring in one of the developers into this post to see fi they can offer some insight.

1 Like

Thanks @cbenson.

Also, I’ve been using FlowArm on Windows for this so far.

Now, I’m trying to use this with Ubuntu and Ros2. Can you please confirm that this will work?

Regards

Hello @vjmn,

Please update the code (pull it), I removed a dependency (humanoid_model_msgs) from the servo control package (lss_ros2_control) that is not necessary to build or use the package for the LSS arms.

Let me know if that solves the error. However, please note that the packages for the LSS Arms have only been tested in ROS2 Galactic, it would be great to know if they run without any modifications on Iron so please share any errors you encounter here.

1 Like

Hi @cbenson

Still some dependencies missing.

rosdep install --from-path src -yi --rosdistro iron

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:
lss_ign_moveit_example: Cannot locate rosdep definition for [ign_ros2_control]
lss_arm_moveit: Cannot locate rosdep definition for [ign_ros2_control]

Can I remove those two references or are they required?

Hello @vjmn

That is an external package for simulating the control of the arms, that package is only available for ROS2 Galactic and Humble, the version supported for Iron is this one:

That is only required if you will be using Ignition Gazebo for the simulations, if you don’t need that you should be able to use most examples. You would only need to comment out this dependency in the lss_arm_moveit/package.xml:

<exec_depend>ign_ros2_control</exec_depend>

And avoid building “lss_ign_moveit_example”

If you need to use Ignition Gazebo for the simulations you could switch the dependency to “gz_ros2_control”.

I created a branch called “iron” with the “gz_ros2_control” package instead of the “ign_ros2_control”, however, I’m unable to test the package right now so I don’t know if it will trigger other errors. If you want you can test that branch or remove the references as explained above.

Regards

1 Like

Thanks @geraldinebc15

I’ll try setting this up over this week and let you know how it goes :slight_smile:

1 Like

Just tried once by disabling and another without disabling; seems to get into a loop.

Not sure how long this is meant to take but the events.log file seems to be filling up with the line:
(-) TimerEvent: {}

Can you share here exactly what you did and the error logs?

1 Like

Hi @geraldinebc15

Followed the steps as per: GitHub - Lynxmotion/LSS-ROS2-Arms

Only changes were to set ros version to iron and edifice to garden.


The current error is:
colcon build --symlink-install
Starting >>> lss_arm_description
Starting >>> lss_ros2_control
Finished <<< lss_arm_description [0.08s]
Starting >>> lss_arm_moveit
Finished <<< lss_arm_moveit [0.06s]                                                                
Starting >>> lss_ign_moveit_example
Finished <<< lss_ign_moveit_example [0.09s]                                                                  
Starting >>> lss_arm
Finished <<< lss_arm [0.06s]
--- stderr: lss_ros2_control                              
Cloning into 'lynxmotion-lss'...
Switched to a new branch 'feature/lss-bus-refactor'
HEAD is now at 06f91e3 changed catch2 tests catch_all.hpp to catch.hpp to match ubuntu catch2 repo headers
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `C_A_T_C_H_T_E_S_T_0()':
parser.cpp:(.text+0x11d): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x237): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x355): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x473): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x591): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o:parser.cpp:(.text+0x689): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `__static_initialization_and_destruction_0(int, int)':
parser.cpp:(.text+0xcb3f): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcbac): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcbc7): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcc12): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcc7f): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcc9a): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcce5): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcd52): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcd6d): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcdb8): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xce25): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xce40): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xce8b): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcef8): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcf13): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::UnaryExpr<unsigned short const&>::~UnaryExpr()':
parser.cpp:(.text._ZN5Catch9UnaryExprIRKtED2Ev[_ZN5Catch9UnaryExprIRKtED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<lss::command::ID const&, lss::command::ID const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKN3lss7command2IDES5_ED2Ev[_ZN5Catch10BinaryExprIRKN3lss7command2IDES5_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<int const&, int const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKiS2_ED2Ev[_ZN5Catch10BinaryExprIRKiS2_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<unsigned char const&, int const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKhRKiED2Ev[_ZN5Catch10BinaryExprIRKhRKiED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_0()':
synthesis.cpp:(.text+0xf7): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_2()':
synthesis.cpp:(.text+0x32a): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_4()':
synthesis.cpp:(.text+0x57e): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_6()':
synthesis.cpp:(.text+0x80e): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_8()':
synthesis.cpp:(.text+0xaa5): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o:synthesis.cpp:(.text+0xd3c): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `__static_initialization_and_destruction_0(int, int)':
synthesis.cpp:(.text+0x1417): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1484): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x149f): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x14ea): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1557): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1572): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x15bd): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x162a): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1645): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1690): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x16fd): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1718): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1763): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x17d0): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x17eb): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1836): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x18a3): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x18be): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1909): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1976): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1991): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x19dc): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1a49): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1a64): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `C_A_T_C_H_T_E_S_T_0()':
indexes.cc:(.text+0xed): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x21f): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x34c): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x488): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `C_A_T_C_H_T_E_S_T_2()':
indexes.cc:(.text+0x811): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o:indexes.cc:(.text+0x986): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `__static_initialization_and_destruction_0(int, int)':
indexes.cc:(.text+0x3bd8): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3c45): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3c60): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3cab): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3d18): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3d33): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3d7e): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3deb): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3e06): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3e51): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3ebe): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3ed9): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<int const&, unsigned long const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKiRKmED2Ev[_ZN5Catch10BinaryExprIRKiRKmED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<unsigned char const&, unsigned char const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKhS2_ED2Ev[_ZN5Catch10BinaryExprIRKhS2_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<unsigned long const&, int const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKmRKiED2Ev[_ZN5Catch10BinaryExprIRKmRKiED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
collect2: error: ld returned 1 exit status
gmake[5]: *** [tests/CMakeFiles/lss-bus-tests.dir/build.make:148: tests/lss-bus-tests] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:313: tests/CMakeFiles/lss-bus-tests.dir/all] Error 2
gmake[3]: *** [Makefile:136: all] Error 2
gmake[2]: *** [CMakeFiles/lynxmotion-lss.dir/build.make:86: lynxmotion-lss/src/lynxmotion-lss-stamp/lynxmotion-lss-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/lynxmotion-lss.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< lss_ros2_control [8.05s, exited with code 2]

Summary: 4 packages finished [8.20s]
  1 package failed: lss_ros2_control
  1 package had stderr output: lss_ros2_control

Did you try using the Iron branch I mentioned?

Any reason for using Garden instead of Edifice?

1 Like

Sorry, I missed that. Will use the iron branch.

Edifice is EOL and I originally thought of Harmonic as that’s the current LTS, then thought I’d try with the version earlier.

@geraldinebc15

Current error is:
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:

lss_gz_moveit_example: Cannot locate rosdep definition for [ros_gz_gazebo]
lss_arm_description: Cannot locate rosdep definition for [ros_gz_gazebo]
lss_arm_moveit: Cannot locate rosdep definition for [ros_gz_gazebo]

@geraldinebc15

Was looking at the compatibility chart at: Gazebo

I should probably be using Fortress.

Hello @vjmn

I should probably be using Fortress.

Noted! I just switched the dependency to Fortress, please pull the iron branch again.

Please note that these changes haven’t been tested so let me know if you get any errors.

1 Like

Hi @geraldinebc15

It’s getting closer :slight_smile: but still errors.


colcon build --symlink-install
Starting >>> lss_arm_description
Starting >>> lss_ros2_control
Finished <<< lss_arm_description [0.82s]                                                              
Starting >>> lss_arm_moveit
Finished <<< lss_arm_moveit [0.54s]                                                                  
Starting >>> lss_sim_moveit_example
--- stderr: lss_ros2_control                                                                                    
Cloning into 'lynxmotion-lss'...
Switched to a new branch 'feature/lss-bus-refactor'
HEAD is now at 06f91e3 changed catch2 tests catch_all.hpp to catch.hpp to match ubuntu catch2 repo headers
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `C_A_T_C_H_T_E_S_T_0()':
parser.cpp:(.text+0x11d): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x237): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x355): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x473): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: parser.cpp:(.text+0x591): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o:parser.cpp:(.text+0x689): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `__static_initialization_and_destruction_0(int, int)':
parser.cpp:(.text+0xcb3f): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcbac): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcbc7): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcc12): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcc7f): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcc9a): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcce5): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcd52): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcd6d): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xcdb8): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xce25): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xce40): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: parser.cpp:(.text+0xce8b): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: parser.cpp:(.text+0xcef8): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: parser.cpp:(.text+0xcf13): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::UnaryExpr<unsigned short const&>::~UnaryExpr()':
parser.cpp:(.text._ZN5Catch9UnaryExprIRKtED2Ev[_ZN5Catch9UnaryExprIRKtED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<lss::command::ID const&, lss::command::ID const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKN3lss7command2IDES5_ED2Ev[_ZN5Catch10BinaryExprIRKN3lss7command2IDES5_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<int const&, int const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKiS2_ED2Ev[_ZN5Catch10BinaryExprIRKiS2_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/parser.cpp.o: in function `Catch::BinaryExpr<unsigned char const&, int const&>::~BinaryExpr()':
parser.cpp:(.text._ZN5Catch10BinaryExprIRKhRKiED2Ev[_ZN5Catch10BinaryExprIRKhRKiED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_0()':
synthesis.cpp:(.text+0xf7): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_2()':
synthesis.cpp:(.text+0x32a): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_4()':
synthesis.cpp:(.text+0x57e): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_6()':
synthesis.cpp:(.text+0x80e): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `C_A_T_C_H_T_E_S_T_8()':
synthesis.cpp:(.text+0xaa5): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o:synthesis.cpp:(.text+0xd3c): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/synthesis.cpp.o: in function `__static_initialization_and_destruction_0(int, int)':
synthesis.cpp:(.text+0x1417): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1484): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x149f): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x14ea): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1557): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1572): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x15bd): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x162a): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1645): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1690): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x16fd): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1718): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1763): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x17d0): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x17eb): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1836): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x18a3): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x18be): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x1909): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1976): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1991): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: synthesis.cpp:(.text+0x19dc): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1a49): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: synthesis.cpp:(.text+0x1a64): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `C_A_T_C_H_T_E_S_T_0()':
indexes.cc:(.text+0xed): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x21f): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x34c): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: indexes.cc:(.text+0x488): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `C_A_T_C_H_T_E_S_T_2()':
indexes.cc:(.text+0x811): undefined reference to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o:indexes.cc:(.text+0x986): more undefined references to `Catch::AssertionHandler::AssertionHandler(Catch::StringRef const&, Catch::SourceLineInfo const&, Catch::StringRef, Catch::ResultDisposition::Flags)' follow
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `__static_initialization_and_destruction_0(int, int)':
indexes.cc:(.text+0x3bd8): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3c45): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3c60): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3cab): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3d18): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3d33): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3d7e): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3deb): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3e06): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: indexes.cc:(.text+0x3e51): undefined reference to `Catch::NameAndTags::NameAndTags(Catch::StringRef const&, Catch::StringRef const&)'
/usr/bin/ld: indexes.cc:(.text+0x3ebe): undefined reference to `Catch::AutoReg::AutoReg(Catch::ITestInvoker*, Catch::SourceLineInfo const&, Catch::StringRef const&, Catch::NameAndTags const&)'
/usr/bin/ld: indexes.cc:(.text+0x3ed9): undefined reference to `Catch::AutoReg::~AutoReg()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<int const&, unsigned long const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKiRKmED2Ev[_ZN5Catch10BinaryExprIRKiRKmED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<unsigned char const&, unsigned char const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKhS2_ED2Ev[_ZN5Catch10BinaryExprIRKhS2_ED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
/usr/bin/ld: CMakeFiles/lss-bus-tests.dir/indexes.cc.o: in function `Catch::BinaryExpr<unsigned long const&, int const&>::~BinaryExpr()':
indexes.cc:(.text._ZN5Catch10BinaryExprIRKmRKiED2Ev[_ZN5Catch10BinaryExprIRKmRKiED5Ev]+0x26): undefined reference to `Catch::ITransientExpression::~ITransientExpression()'
collect2: error: ld returned 1 exit status
gmake[5]: *** [tests/CMakeFiles/lss-bus-tests.dir/build.make:148: tests/lss-bus-tests] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:313: tests/CMakeFiles/lss-bus-tests.dir/all] Error 2
gmake[3]: *** [Makefile:136: all] Error 2
gmake[2]: *** [CMakeFiles/lynxmotion-lss.dir/build.make:86: lynxmotion-lss/src/lynxmotion-lss-stamp/lynxmotion-lss-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/lynxmotion-lss.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< lss_ros2_control [9.38s, exited with code 2]
Aborted  <<< lss_sim_moveit_example [9.74s]                                 

Summary: 2 packages finished [11.3s]
  1 package failed: lss_ros2_control
  1 package aborted: lss_sim_moveit_example
  2 packages had stderr output: lss_ros2_control lss_sim_moveit_example
  1 package not processed

Awesome! But it looks like you still have an error with the Catch2 installation.

Sometimes, stale build files can cause issues. Try cleaning your build directory completely and rebuilding from scratch. * Note: you do not need to uninstall anything, just delete the build folder from the project directory.

I added the Catch2 package as a requirement to build the “lynxmotion-lss” project and added a flag to the “LSS-ROS2-Control” package to make sure Catch2 is properly installed before building. Please pull “LSS-ROS2-Control” before trying to build again and make sure to source your workspace before building.

Let me know how it goes

1 Like

Hi @geraldinebc15

I rm -rf Catch2 & the LSS directories and ran all.

Got this error:

Finished <<< examples_rclcpp_wait_set [46.0s]                               
--- stderr: gz_ros2_control                                                 
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp: In member function ‘virtual bool gz_ros2_control::GazeboSimSystem::initSim(rclcpp::Node::SharedPtr&, std::map<std::__cxx11::basic_string<char>, long unsigned int>&, const hardware_interface::HardwareInfo&, ignition::gazebo::v6::EntityComponentManager&, int&)’:
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:281:21: error: ‘const struct hardware_interface::HardwareInfo’ has no member named ‘mimic_joints’
  281 |       hardware_info.mimic_joints.begin(),
      |                     ^~~~~~~~~~~~
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:282:21: error: ‘const struct hardware_interface::HardwareInfo’ has no member named ‘mimic_joints’
  282 |       hardware_info.mimic_joints.end(),
      |                     ^~~~~~~~~~~~
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:283:37: error: ‘MimicJoint’ in namespace ‘hardware_interface’ does not name a type
  283 |       [j](const hardware_interface::MimicJoint & mj) {
      |                                     ^~~~~~~~~~
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp: In lambda function:
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:285:9: error: expected ‘{’ before ‘;’ token
  285 |       });
      |         ^
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp: In member function ‘virtual bool gz_ros2_control::GazeboSimSystem::initSim(rclcpp::Node::SharedPtr&, std::map<std::__cxx11::basic_string<char>, long unsigned int>&, const hardware_interface::HardwareInfo&, ignition::gazebo::v6::EntityComponentManager&, int&)’:
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:285:9: error: expected ‘)’ before ‘;’ token
  285 |       });
      |         ^
      |         )
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:280:27: note: to match this ‘(’
  280 |     auto it = std::find_if(
      |                           ^
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:287:29: error: ‘const struct hardware_interface::HardwareInfo’ has no member named ‘mimic_joints’
  287 |     if (it != hardware_info.mimic_joints.end()) {
      |                             ^~~~~~~~~~~~
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp: In member function ‘virtual hardware_interface::return_type gz_ros2_control::GazeboSimSystem::write(const rclcpp::Time&, const rclcpp::Duration&)’:
/home/vijay/gz_ros2_control_ws/src/gz_ros2_control/gz_ros2_control/src/gz_system.cpp:686:47: error: ‘struct hardware_interface::HardwareInfo’ has no member named ‘mimic_joints’
  686 |   for (const auto & mimic_joint : this->info_.mimic_joints) {
      |                                               ^~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/gz_hardware_plugins.dir/build.make:76: CMakeFiles/gz_hardware_plugins.dir/src/gz_system.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/gz_hardware_plugins.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< gz_ros2_control [47.9s, exited with code 2]
Aborted  <<< examples_rclcpp_minimal_composition [49.2s]                                    

Summary: 24 packages finished [49.5s]
  1 package failed: gz_ros2_control
  1 package aborted: examples_rclcpp_minimal_composition
  12 packages had stderr output: examples_rclpy_executors examples_rclpy_guard_conditions examples_rclpy_minimal_action_client examples_rclpy_minimal_action_server examples_rclpy_minimal_client examples_rclpy_minimal_publisher examples_rclpy_minimal_service examples_rclpy_minimal_subscriber examples_rclpy_pointcloud_publisher gz_ros2_control launch_testing_examples py_srvcli
  5 packages not processed

Hello @vjmn

Those messages seem to indicate that there is no support for mimic joints in gz_ros2_control.

In the context of robotics simulation, the absence of support for mimic joints in gz_ros2_control implies that certain joint behaviors cannot be directly replicated from one joint to another. To do this with the ign_ros2_control package (that works in Galactic) I added a conditional check for the presence of a mimic joint, if it’s not set to ‘none’, a mimic relationship is established where one joint’s motion is mirrored by another with specified multiplier and offset values.

<xacro:unless value="${mimic_joint == 'none'}">
        <mimic joint="${mimic_joint}" multiplier="${multiplier}" offset="${offset}"/>
</xacro:unless>

The mimic_joint flag, the multiplier and the offset are set in the lss_gripperXdof.xacro files. If you set the Finger 2 to mimic_joint=“none” you will avoid the errors you are getting.

However please know that without this feature, the simulation of the robotic gripper where fingers move in unison, becomes limited. Only the directly actuated joint will exhibit movement, leading to a less realistic simulation of the full mechanism. Nevertheless, this will not affect the control of the real robotic arm.

1 Like

Hi @geraldinebc15

That worked; I also removed the lss example project from the dependency.

However, now that I’m trying to run Rviz, I get the following error:

1714455296.9774389 [INFO] [launch]: Default logging verbosity is set to INFO
1714455297.1012311 [ERROR] [launch]: Caught exception in launch (see debug for traceback): executed command showed stderr output. Command: /opt/ros/iron/bin/xacro /home/vjmn/LSS-ROS2-Arms/install/lss_arm_description/share/lss_arm_description/urdf/lss_arm.urdf.xacro name:=lss_arm prefix:= dof:=4 collision:=true safety_limits:=true safety_position_margin:=0.15 safety_k_position:=100.0 safety_k_velocity:=40.0 ros2_control:=true ros2_control_plugin:=sim gazebo_preserve_fixed_joint:=false
Captured stderr output:
warning: Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead.