Society of Robots - Robot Forum

Software => Software => Topic started by: Alligator on May 17, 2014, 01:20:53 PM

Title: Choice of Robot Programming Language
Post by: Alligator on May 17, 2014, 01:20:53 PM
I have a robot that I will be constructing that will have fairly large motors and quite a few sensors (Kinect, ultrasonic, LIDAR, camera, GPS, etc.).  I was considering using a computer with Python and a small Arduino to control this robot.  I could use the Arduino to read some of the sensors, pass information to the computer, and use the computer to do the heavy computational lifting.  I could also use the Arduino to interface to a motor controller, relays, etc.  The computer will be an Intel i5, so it has the horsepower necessary.

I'm also aware of the Robotic Operating System (ROS), but this seems fairly complex to learn.  I understand I could also use LabView (expensive hardware) or Matlab.

Given that I already know some Python and how to program an Arduino, should I stick with these, or go with something a little more robust?  I'm not afraid to learn, I just don't want to go down the wrong path.

What language or software should I use?
Title: Re: Choice of Robot Programming Language
Post by: muilenta on October 24, 2014, 12:11:52 PM
I'm using visual studio, and opencv for computer vision.  You can use rs232 via usb to talk to a sensor board of your choice for input output.
Title: Re: Choice of Robot Programming Language
Post by: jcicolani on October 25, 2014, 09:50:08 AM
If you are familiar with Python and intend to do any high level functions, I strongly suggest investing the time to learn ROS. I spent a year mucking about with other options and in the end turned to ROS. It has a large community of supporters and already has pre-built packages to handle just about anything you want to do. I should have heeded my friends' suggestions and started there.
Title: Re: Choice of Robot Programming Language
Post by: Kohanbash on October 25, 2014, 08:42:02 PM
Python is great for doing things quick, however it is also slow for doing serious processing.

ROS has a learning curve but it also can save you a lot of time. There are ROS drivers for many devices from motor controllers to sensors. It also has a lot of the infrastructure code for you such as message passing between processes, logging, user interfaces, and visualization tools.
Title: Re: Choice of Robot Programming Language
Post by: swordmaster2k on November 14, 2014, 06:38:44 AM
It all depends on what you want from the project, maximum learning outcome via python, or better scaling (ROS). If your using Computer Vision and Kinect ROS is probably the better option, ROS also appears to have a  python API (http://wiki.ros.org/APIs).

I'm currently engaged on a 9 month robotics project based around path planning. I made the decision of python over ROS because I wanted to understand everything from the ground up rather than using preexisting solutions. I have a Arduino/Pi to Host Computer setup using encoders, laser, sonar, optical flow, etc... Python is suitable for most robotics projects and its speed issues can normally be addressed by extending it with C.
Title: Re: Choice of Robot Programming Language
Post by: SeekingVision on November 19, 2014, 08:52:11 AM
I'm trying to use a computer to control all decisions and want to use vs c++ for everything but in the interest of moving things along quicker with hardware interactions development, I use vb and pass info back and forth between programs using the clipboard. It the end I will have the whole system running on c++ but that will require a lot of time to accomplish. Use what ever works for you and then if you need more speed just port it to a faster group of code. That's my take anyway.