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 ...
user avatar
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 ...
user avatar
  • 5,215
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 ...
user avatar
  • 291
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 ...
user avatar
  • 4,326
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 ...
user avatar
4 votes
Accepted

Create a simple C++ client Application to control KUKA's Robot-arm LBR iiwa via FRI

I have a library called grl which integrates control of a KUKA iiwa in C++. Right now the most reliable mechanism I've found for control is to receive state over FRI, then send state via Java. All ...
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 ...
user avatar
  • 4,205
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 ...
user avatar
4 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 ...
user avatar
  • 141
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 ...
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. ...
user avatar
  • 1,041
3 votes
Accepted

ros send message on startup doesn't seem to work

I experimented a bit and here's what I think happens. When you run $ rostopic echo /questions The /questions topic doesn't ...
user avatar
  • 3,210
3 votes
Accepted

Connecting an Arduino uno with a beaglebone black over USB

Beaglebone USB When you plug a USB cable between the USB B plug of the Arduino Uno and the USB A plug of the Beaglebone Black, the Beaglebone should be able to talk and listen to it the same way any ...
user avatar
  • 4,375
3 votes

redundant arm path planning and trajectory following

To expand on Alexandre's answer: Controlling the arm with the Jacobian along an end-effector trajectory is one way to do it. However, this will not give you obstacle avoidance. Although you could ...
user avatar
  • 5,215
3 votes
Accepted

How to transfer signed integers with libusb?

What you are looking for is called serialization. Serialization is the process of creating a string (a serial stream of data) (not necessarily NUL-terminated) from arbitrary data. The issue ...
user avatar
  • 3,210
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 ...
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&...
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 ...
user avatar
  • 4,326
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 ...
user avatar
  • 6,322
3 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 ...
user avatar
3 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), ...
user avatar
  • 1,497
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 ...
user avatar
  • 1,561
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 ...
user avatar
  • 443
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 ...
user avatar
  • 14.5k
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, ...
user avatar
  • 4,326
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 ...
user avatar
  • 5,215
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
user avatar
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 ...
user avatar
  • 623
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 ...
user avatar
  • 4,205
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 ...
user avatar
  • 14.5k

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