Hot answers tagged

12 votes

How to setup CLion for ROS?

Start CLion from a commandline with your sourced ROS workspace (i.e. after calling source devel/setup.bash) Open a project's CMakeLists.txt, and tell it to open it ...
Martin Pecka's user avatar
6 votes

How to setup CLion for ROS?

Integrating CLion with ROS is actually straight forward and works out of the box if one knows how to do it: With your console, go into your ROS workspace and source the respective ...
Jarno's user avatar
  • 311
6 votes

Programming Inverse Kinematics in C++

I agree with SteveO that there is nothing wrong with reinventing the wheel if you want to learn about wheels. And for a single application, 4 DoF arm, the IK is probably not too hard. But I feel ...
Ben's user avatar
  • 5,825
6 votes

How Can A Total Beginner Become A Skilled Roboticist?

Robotics is a mixture of things like mechanical engineering, electronics engineering and software engineering! Knowing C++ is a big head start in this area! Because I strongly believe that amongst all ...
JJerome's user avatar
  • 183
5 votes
Accepted

Programming Inverse Kinematics in C++

It is rather straightforward to implement inverse kinematics for a particular manipulator in C++. Of course, you need to begin with the inverse kinematic equations themselves. Putting those into ...
SteveO's user avatar
  • 4,386
5 votes
Accepted

Multiple View Triangulation method used by COLMAP

This method is minimizing the reprojection error of the triangulated point. How to see this: Let $P_i$ be the $3 \times 4$ projection matrices, and let $x_i \in \mathbb{R}^3$ be the (homogenized ...
Adam Williams's user avatar
5 votes

How Can A Total Beginner Become A Skilled Roboticist?

There are a few dimensions to being a roboticist: is knowledge of theory about robot perception (understanding the world through sensors such as cameras, signal processing and machine learning), ...
Peter Corke's user avatar
  • 1,692
4 votes

Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?

The best way to understand forward and inverse kinematics is to write a library for its own. A good starting point is to implement Cyclic Coordinate Descent. So called "ready-to-run" librarys like ...
Manuel Rodriguez's user avatar
4 votes
Accepted

How to become proficient in software development for an aspiring roboticist?

If you make a career of robotics, you will come in contact with a lot of languages, a lot of libraries, and a lot of systems. The more you know about the fundamentals, the easier it will be to adjust ...
hauptmech's user avatar
  • 4,385
4 votes
Accepted

Adjusting the PWM frequency and duty cycle to achieve the desired angular velocity in differential drive robots

At first, I did not go trough your code to check for errors in the formulas but from a high level perspective this seems ok. Therefore, your position controller is fine. What you lack is a lowlevel ...
Marco Sütterlin's user avatar
4 votes

PID Control: Is adding a delay before the next loop a good idea?

Don't disengage your controller. The purpose of a controller is not only to steer your system to the desired setpoint according to a predetermined dynamical response but also to counteract potential ...
Ugo Pattacini's user avatar
4 votes
Accepted

Does a stable library exist for docking robots using images?

There's a lot of solutions out there already for this. I'll start by suggesting AR tags not QR tags. They're better optimized for localizing. The Alvar library is commonly used for tracking AR tags. ...
Tully's user avatar
  • 24.7k
4 votes
Accepted

Creating a custom msg in ros2

The short version is, you need to tell CMake where to find the targets generated for the interfaces and link your own executable/library targets to them. You can do this using the ...
Geoff's user avatar
  • 1,823
4 votes

Nvidia Jetson Nanon GPIO c++ direct memory interfacing

I created a library that does just that, mapping the tegra CPU registers in user space. My lib is here: https://github.com/Rubberazer/JETGPIO it can be called from C or C++
Rubberazer's user avatar
3 votes
Accepted

Robot Graphical Representation in Real Time

If you are already using Qt, then Q3 3D would be an obviuos choice for 3D representations. Gaming engines like Unity (C#/JavaScript) or the Unreal Engine (C++) are also a suitable choice for ...
50k4's user avatar
  • 6,652
3 votes

Implementation of inverse kinematics solution in c++

It is a bit hard to know the exact cause of the error without having the (RobWork), I tried to install it following the link your provided, but I ran into some problems and I don't have the time to ...
ghanimmukhtar's user avatar
3 votes
Accepted

Implementing an analytic version of an inverse kinematic

Given a desired pose: $$T^{desired} = \begin{bmatrix} s_x&n_x&a_x&P_x\\ s_y&n_y&a_y&P_y\\ s_z&n_z&a_z&P_z\\ 0&...
ghanimmukhtar's user avatar
3 votes

Implementing an analytic version of an inverse kinematic

Your Jacobian-based approach is great for velocity control, or when the manipulator is close to the original point. But remember, the Jacobian only gives a first-order approximation to the ...
SteveO's user avatar
  • 4,386
3 votes
Accepted

Some Kalman filter implementation queries

Answers are inline Qn 1. Does kalman filter require constant time step? Correct it does not. The reason you may find in literature that it requires a constant time step has to do with with lack ...
edwinem's user avatar
  • 1,831
3 votes

difference between the two constructors

IMHO the main difference is, that inside function/method the first one (object) is allocated on the stack and destroyed after leaving the function, while the other (pointer) allocates its data on the ...
gilhad's user avatar
  • 453
3 votes
Accepted

C++ (ROS node) for Euler Integration to estimate Velocity knowing the acceleration

I find it easiest to make a class for stuff like this, where you have data you want to use between callbacks, or your want to publish a message inside of another callback. For example, your class ...
Chuck's user avatar
  • 16k
3 votes

How could you have controllers communicate with each other?

Welcome to Robotics, Jonathan Ariel Callejas. You haven't provided your code, but I believe the problem you're having is with variable scope. In your case, your error suggests you're trying to make a <...
Chuck's user avatar
  • 16k
2 votes
Accepted

Stereo Vision Using Compute Module: Pi camera synchronization

You need real camera synchronization which means using cameras that both have external trigger capability (it is like the "remote shutter" on consumer/DSLRs). What you do is feed a common trigger ...
Kozuch's user avatar
  • 633
2 votes
Accepted

How to split tasks between interrupts and the main loop on a bare metal controller?

Some very general advice. My first impression from your question is that you are struggling with the fact that no hardware provides infinite resources. You can either slow down your control loops or ...
hauptmech's user avatar
  • 4,385
2 votes

Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?

I haven't used it personally (yet; it's only a matter of time), but I believe the Rigid Body Dynamics Library is what you're looking for - efficient forward and inverse kinematics. I did a lot of work ...
Chuck's user avatar
  • 16k
2 votes

Does C have advantages over C++ in robotics?

As the comments indicate, the answer is really based on what you want to do with the programs you write. There are a lot of benefits to the object oriented capabilities of C++. But the inheritance, ...
SteveO's user avatar
  • 4,386
2 votes

Is there a simpler way than ROS for 5 DOF Dynamixel arm control

The library call could be as simple as these two OpenRave Python lines: robot.GetController().SetPath(traj) robot.WaitForController(0) Of course the types would ...
Ben's user avatar
  • 5,825
2 votes

Is there a simpler way than ROS for 5 DOF Dynamixel arm control

Cross post on YARP Q&A channel: https://github.com/robotology/QA/issues/54
Ugo Pattacini's user avatar
2 votes

Can i use a predictive kalman filter to 'increase' my sample rate?

Short answer, yes, if you use your IMU to fill in the gaps. You can use additional Bayesian filtering to fill in the pose gaps as long as you fuse in your IMU data. The IMU (assuming it has ...
Nate Gardner's user avatar
2 votes
Accepted

Can i use a predictive kalman filter to 'increase' my sample rate?

In this situation, you probably shouldn't use a Kalman filter for "filling" in the gaps. Typically, you use a Kalman filter (or Bayes filter etc...) to fuse information from different sources. In ...
Ralff's user avatar
  • 335

Only top scored, non community-wiki answers of a minimum length are eligible