Autonomous Vehicle software commercial platform - autonomy

I am looking for autonomous software for my research project. I know some open-source software like Apollo and Autoware but I would like to know more about full self-driving commercial software. Do companies like Waymo, Cruise, and Tesla sell their AV software stacks? Does anyone have some suggestions? I mean a full platform, not just a few ADAS functionalities.

Before You choose a simulator, You must define your project's requirements. Some of the requirements are:
Do You want to visualize your simulation? Are high quality graphics important for your project?
Are you going to use Sensors to collect data from your environment or your project takes a more theoretical approach?
In what language are You going to write your code? Also, in which platform you are going to run your simulator?
Anyway, there are a lot of AV simulators out there. Personally, My favourite is Carla simulator:
https://carla.org/
However, If you are a researcher You can also download NVIDIA Drive Sim. This one is also used by many automotive industries:
https://www.nvidia.com/en-us/self-driving-cars/simulation/
Also, many papers about Autonomous Vehicles use Eclipse SUMO to test their algorithms:
https://www.eclipse.org/sumo/
You can check all of them and see which one of those covers your project requirements.

Related

Using a STM upsd3200 series mcu for the first time

I've received a dk 3200 kit recently. I know it's old but I would like to start using it to have more of a challenge than just arduino. It came with the board, an st flashlink FL-101B and some cables. I do not have the install disc, but I found the software for psd soft express online. It doesn't work with current windows 7 64bit. If I could use my arduino to program it, that would be great! Or maybe just do it through USB or the parallel ports? I've read that st provides a stm32 library used to help make code. If that works for my mcu, I'll use that.
Thanks
ST is a company that loves to re-organize their website and break links, but a data sheet for a part of what seems to be the same family as on your board is available from a toolchain vendor at:
http://www.keil.com/dd/docs/datashts/st/upsd321x_ds.pdf
On page 118 this seems to indicate that programs can be loaded using JTAG In System Configuration commands, which may be somewhat standardized though quick searching isn't producing a lot of leads. A reference is also made to ST's AN1153 which would be worth trying to locate a copy of, however it's not entirely clear if that will say anything about the programming, or if it only covers the additional two optional signals which have been added for hardware acceleration of the interface.
In theory, if you can find sufficient information about this device (looking at related devices may provide clues) then you should be able to craft a programming from an Arduino or anything else that can be adapted to twiddle bits at the appropriate voltage/threshold levels.
In practice, you may be better off trying to find an old Windows XP box, or even trying to run that software on a virtual/emulated environment and trap the I/O access either to proxy or to figure out what it is doing and reverse engineer your own programmer.
But unless you have a large installed base of boards using these chips, or particular need some unusual feature of them (I thought I saw something about a built-in CPLD?) it's really not going to be worth the effort.

Looking for 3rd party Qt Gantt Chart component

I'm looking for a Qt Gantt Chart GUI component or at least the beginnings of one. I've looked the web over so this is my last stop before creating one for myself. I'm capable of realizing this type of component myself but would prefer to dedicate my time to more domain specific development problems if at all possible.
Any suggestions would be much appreciated.
you can download a trial version. But I thinks it's rather expensive:
KDGantt follows the same pricing model and license agreement that Nokia uses. Per developer / platform licensing, each developer licensed to use KDGantt on a certain platform may use the software on any number of computers running this platform, but other developers working on the same computers may not, unless they have their own licenses. There are no runtime/royalty fees for applications built and deployed using KDGantt. You may ship the binary library together with any number of your application(s) for the platform your license is assigned to.
One (1) KDGantt license for single platform ----------------- $1600.00 US
UNIX/Linux or Mac or Windows, chose one platform
One (1) KDGantt license for duo platform -------------------- $ 2400.00. US
UNIX/Linux or Mac or Windows, chose two platforms
One (1) KDGantt license for trio platform --------------------- $ 3200.00. US
UNIX/Linux, Mac and Windows, all three platforms
Would this do it? http://www.ics.com/products/qt/kdgantt/. Found via a quick Google search.
I would suggest that you also have a look at the VARCHART XGantt control from NETRONIC. This control is around on the market for a long time, it is proven in mission critical applications, and very feature-rich. Please note: my answer is biased as I work for NETRONIC. I also openly share that we sell at higher prices than all tools mentioned above; and that is for a reason.
Have a look at our Gantt chart offerings. If you like what you see, please send us an email to mailto:sales#netronic.com. Please refer to stackoverflow and ask that this email will get forwarded to Martin. He will get in contact to you to evaluate the potential of creating a complementary rapid prototype.
btw - A Gantt is typically more complex than many people assume. From talking to many of our clients (both software developers and end users) I know that using a proven control turns into tangible time-to-market benefits.
Does this help you although it is a vendor answer?

An example of an embedded project for a single person

I've been trying to wrap my head around embedded. Since I will be self-taught in this specific niche, I realize it will be harder to get a job in the field, so I'm hoping to add a completed project to my resume to prove to potential employers that I've done it and can do it again for them.
Can someone suggest a project that I can undertake as a single person and actually be able to finish, but at the same time not too simple that it doesn't prove anything? Something reasonable that I can aim for.
If you can substantiate your example with a project you worked on yourself, and mention how many people were involved, and how long it took to finish it, that would also help me gauge the difficulty of projects I see in general and rule out the ones that are probably too big for my capacity. It's very difficult to gauge the amount of work a project needs from my position.
You should take a look at the arduino. To quote their site:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
There is a really handy playground listing a bunch of personal projects on the arduino, any one of which might fulfil your need to do some embedded development. You can also trawl around the internet (e.g. instructables) to find many other interesting arduino applications -- I particularly like the one building a fancy control system for an espresso machine, and, of course, there is the mandatory fart detecting chair that tweets its findings.
Being an arduino experimenter myself, I can attest to the simplicity and power of this device -- and the great fun you will have playing with it. If you want to get started quickly, I can recommend buying the starter kit from the very helpful people at oomlout.
Are you looking specifically at embedded software development, or are you interested in circuit board design as well?
If it's just software, then I would suggest getting hold of an ARM development board (Possibly the Philips LPC range - sparkfun have some nice ones) that you can program via a bootloader over usb and start hacking. Get one with a display and an ethernet port and you can build up to making some sort of network attached sensor (temperature, water level, object counter, etc). Start out little (turn on a LED from a button) and work your way up.
If you're also into the electronics side of things, I'd suggest something like an MP3 (or WAV) player and maybe stick to the AVR or PIC 8bit microcontrollers (AVR is used on the Arduino) as these are a little easier to deal with than ARM. Here you could start with a usb powered device that streams wav files from a PC serial port out to a pair of headphones, and build up to a battery powered board, feeding data to an MP3 decoder IC from an SD card.
Some things you may want to learn & demonstrate:
Understands the bounds of working with limited resources, including memory management (dynamic and/or static); resource management (locks, semaphores, mutex); multiple tasks (interrupts); and appropriate data structures
Ability to interface with other devices/ICs over various interconnects (analog & digital IO, serial bus (RS232, I2C, SPI))
Ability to sanely structure a program and segment the various modules without producing 'spaghetti' code
Ability to use source and integrate 3rd party libraries where appropriate (think FAT filesystem, or TCP/IP stack)
Misc Tips:
read and understand the datasheets (yes all of them)
code and test on the desktop where possible, but understand that there are differences and bugs will still creep through (this is where it helps to be using a tool-chain that is common with the desktop - GCC is good, but the tools are generally CLI)
use assert a lot - you can flash the line number of a failed assert using a single LED - this is invaluable
Most of all have fun - it still makes me smile when you first get a new component working (display, motor, sensor). Embedded makes the world go round :)

Cross-platform, open-source development framework that needs 3d graphics

I'm thinking of developing a game-like piece of software. It will probably require a bit of OpenGL, MIDI input, and math. I'd like to eventually sell the software, so it needs to be installable on PCs with different OSes. And I don't want to have to spend a lot of time on memory management and other low-level details.
My question is this: what language/framework would you use for such software?
You have got a lot of options my friend, here are just a few which allow you to use a high level language to develop.
Torque 3D http://www.garagegames.com/
I've used this a bit and can tell you its a pretty good solution. You can build you game logic in their TorqueScript. Using it also gets you the option to release on pretty much every major platform including consoles and the browser. The only snag is it does cost money, but is very affordable for indies.
Panda3d http://www.panda3d.org/
This a completely free open source engine. I provides a lot of functionality and also allows you to program your game logic in python. The platforms it supports is Linux/Mac/PC.
Mono http://mono-project.com/Main_Page
I have not played around with this too much, and am not sure how good their 3d is (it isn't known for it anyway). It does allow you to program in a number of high level languages (C# and python to name a few). It also allows you to deploy to a number of platforms including embeded devices and the iphone (MonoTouch).
I would check these out and see if any are a fit for your situation. If none are then there are a large number of other options out there.
I think the closest thing to what you're after is Java. It has decent support for OpenGL(JOGL) and a good standard library that works on most systems.
Despite what some people will tell you, Java isn't as fast as C, and this can rear it's head doubly so in a game. It is cross platform though, and you don't have to bother with all that tiresome memory-management.
I would use C# for scripting & the Unity 3D Engine. http://unity3d.com/
Unity has a reasonable licensing fee but it's also free to download and get started. Check the details for when a licensing fee is payable.
Anyways, Unity3D takes care of:
3D rendering
Memory management
Input
Audio & Video
Networking
Asset pipelines
Scripting through the Mono CLR (ie, you can use C#)
And has a great level/world editor
If you are willing to trade raw speed for ease of use then this is for you. We started a project intending to use Unity. Our project needed greater customization than we could get from the engine. We wanted source code and to run at 60fps so we upgraded. But I would still recommend it as a solid multi-platform multi-OS solution.

How to start develop for chinese mobile phones based on nucleus RTOS? (MTK) [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I've noticed that chinese mobile phones became very popular, perhaps because of their very reasonable price and many modern features (touch screens, advanced multimedia, double sim cards etc).
I'm wondering if there's any way to develop custom solutions for this handsets as independent developer? How to obtain a toolkit and documentation?
I've found some resources, but mainly inconsistent tech notes, often in chinese only. For now I know, that majority of chinese handsets are based on chips from MediaTek (MTK), with operating system based on Nucleus RTOS and MMI (plutoMMI?) framework. Unfortunately, there is no Java RE avaiable (ok, there are some handsets with Java, however, Java isn't something I'm looking for)
Is there any SDK, documentation, emulators/simulators, how-tos, etc avaiable? How to develop, deploy and test custom application for MTK mobile?
I am enginner at design company. I have MTK development platform for MT series mobiles with English explanation. The original release and manuals are written in English(About 300mb pdf files). The SDK have simulator written in Visual C++. MMI interface working under nucleus rtos os. The codes are V++.
The MTK service is charged. You need to contact them and pay for the chip, software SDK, document, and technical support.
I don't know where you get the "some resource", but it must be leaked by some customer of their, thus using these resource will be considered as illegal.
I work with a lot of Chinese mobile phone manufacturers because we export mobile phones from China. I'm really interested in building a new applications, especially an email program, for these MTK based devices. Now it's a bit late to be looking at the 6225 platform because the 6235 platform seems to be where we'll see the most growth moving forward. The major differences that I'm aware of between the 6235 and 6225 are that 6235 supports Wi-Fi, works with EDGE, and is faster.
Steve, you mentioned the G2. I think that Android will be the breakout OS for Chinese phone manufacturing. Once their local engineers and designers get a handle on it a plethora of both ridiculous and useful applications and models will flourish and there won't be major export (customs) problems as we see now with the Windows Mobile devices (because the Chinese typically don't offer licensed software).
For platform sources this can be a starting point :
https://www.mentor.com/embedded-software/downloads/nucleus-source-interest_reg
I have no real experience on RTOS, I am GNU/Linux guy
I just bought a SciPhone G2 Dream and have done some initial investigation. This particular phone runs J2ME applications but I am also wondering what can be done (if anything) with native applications. Ideally I would like to get my Bluetooth GPS to work with this phone.
This page discusses getting GCC to work with Nucleus but I'm not sure whether this is useful.
Mentor (the makers of Nucleus) have a trial version of their developer suite available. I have just requested a free trial. It is a bit concerning that the website makes no mention of the cost. They also have an emulator.
What sort of phone did you get and what sort of applications are you planning to develop?
I'm in same wagon like you, trying to select an smartphone with WIFI and available SDK, low cost (lower thatn 40$). Also contacted Mediatek without results. I can give you a piece of advice, in reality is what I'm doing now. Try to negotiate a bulk purchase with a supplier together with access to SDK and documentation. I did that before with an ARM based Thinclient and worked, but I had to buy 30 pcs.
I'm not exactly sure of what you mean by a 'Chinese' phone. However, you may be talking about ODM phones. Most of the time, these phones are system clones of regular phones with some customisation. It may be a good idea to just buy one and take it apart to see what platform it runs on. Maybe it uses OMAP or something else? In which case, you probably have more knowledge on how to proceed. Maybe it is even compatible with Linux.