Giter VIP home page Giter VIP logo

oscc's People

Contributors

adrienthebo avatar annietupek avatar cotos avatar evanlivingston avatar galv avatar jameysharp avatar jeffweiss avatar laffan avatar lucasbuckland avatar nathanaschbacher avatar pml-trey avatar rebpdx avatar shnewto avatar siemensrachel avatar vertexmachina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oscc's Issues

Software stack

I saw mention in 141 that you use a Alienware Aurora R6 as your compute platform.
What software stack are you using?

Do we need any connectors for the Control CAN bus?

What connector should we use for the Control CAN bus assembly?
I've read some articles that mention DB9 connector being the industry standard for CAN bus. Other articles mention a 5-pin M12. Or would using a twisted pair of wires for the CAN-L and CAN-H signals and then Tee-splice each wire individually at each device node work?

What goes in the fuse box shown in the "Overview" page diagram?

It was mentioned in a previous issue that the fuse box shown in the picture refers to an external fuse block that is independent from the fuse box that is in the Kia's engine compartment. So what exactly is supposed to go inside that fuse block? I mean there are already fuses for all the modules elsewhere in the schematic.

Tests contain a lot of uncalled and commented-out code.

The test cases are currently really shabby. I'm not quite sure what they're meant to be doing right now. It seems almost as if they're supposed to be somehow interactive, but they're currently cluttered with commented out regions and unused functions.

Not sure how to resolve this issue. I just wanted to bring this up to the maintainers too understand what the goal is of the tests.

using Other Models of Kia

hi,
We are interested in applying these controls to other models of kia. Which models, outside of US, would be suitable for this? Cerato K3 or the Carens?

Steering control should have a timeout for chassis_state_1 frame

The steering code depends on getting the steering angle from the C-CAN bus via the OBD-II connector. Currently, the firmware does not have a timeout for receiving the CAN frame that contains the steering angle. If the controller does not receive steering angle for any reason (disconnected OBD cable) then the steering controller runs but errantly.

Confused about the amperage of the relays shown in the "Overview" page diagram

It was mentioned in a previous issue that the system, with more hardware in addition to the OSCC modules and gateway used about 85 A. But the 2nd relay shown in the "Overview" page diagram (the one that is controlled by the Emergency stop) is rated for 40 A. Is that right? Where is the additional amperage suppose to come from?

Brake Wiring

Hi,

Thank you for the actuator pinout guide.

Do you also have where these wires tie into the Kia? It would be great to have a wiring schematic and maybe some photos if available.

Matt

Using BM1 power increases brake actuator longevity

In our testing we have discovered that using the BM1 instead of BM2 motor power connection improves the longevity of the Prius brake actuator motor. We found that the actuator will pump slightly slower, but negligibly so for normal operation. Regular OSCC devel branch firmware should work fine with this hardware change although caution should always be used when making hardware modifications. To make this change, snip the (red) BM2 wire at the plug end, and crimp the power line to BM1 (pink). Always follow proper crimping procedure while crimping wires, and switch off power to your modules before making any changes. See attached for a visual indication of how this is done.
img_20170504_173851

About the Control Can Bus Physical Implementation

How do you build the Control CAN Bus that will connect the gateway, OSCC modules and the control computer? As I understand, the bus needs to be terminated at both ends with 120 Ω. What connectors/cables/wires/terminators do we need?

Structures are using bit fields

Bit fields are not necessarily safe and can vary according to what processor or compiler is used. These should be changed to use bit macros (e.g. the Linux versions
#define SET_BIT(p,n) ((p) |= (1 << (n)))
#define CLR_BIT(p,n) ((p) &= (~(1) << (n))) )
to allow for the code to be more specific and safe.

Supported Kia Soul models?

Hi,

Does OSCC support Kia Soul 2017?
What are the supported Kia Soul models (LX, EX, SX) ?
Does it need to have Auto Parking Assistant?
Is there any modification or requirements needed?

MQ

Brake Module Box

Has anyone found a place to buy a brake module enclosure?

The 3d printed file will cost around $359 on shapeways. The STC lid and box are around $170.

Is there some other enclosure we can use?
Thanks,

Matt

Steering in higher speeds

Can you please elaborate more on the steering implementation? AFAIU the power steering in most vehicles is active only in slow speeds. In higher speeds it disengages since it is not needed (and might even be counterproductive). Is the Kia Soul steering implementation different?

In the CAN Specification I see a Steering Command - is the steering completely mechanical decoupled? I mean is it steer-by-wire? Or is there something else in the design I am missing?

Brake Code Cleanup

In general, the brake code is organized correctly, however, there are a variety of libraries used that make it less than portable to another environment, e.g. the map function for converting an input into an overall range and the finite state machine used for a function with two states.

The main purpose of this issue is to go through the code and remove code that is specific to libraries that are only on Arduino. Either write the implementation in a portable format or isolate and encapsulate the functionality so that it can be easily changed to support a new processor or compiler.

Remove doubles from the code

The floating point implementation is all done through software emulation. As a consequence, any floating point operations are limited by the number of times that the processor has to access memory to perform execution on a multi-byte variable. For doubles, this means that there are at least 8 memory accesses per variable. The increase in accuracy is of limited benefit as compared to a 'float' operation; all floating point operations should be done with 'float's instead of 'double's.

ROS Interface

Is there any future plans for a ROS interface? By adding it there would be more compatible open source software and it would encourage more robotics developers to join the OSCC movement!

Duplication between `firmware/*/kia_soul_ps/*.ino` and `firmware/tests/*.ino`

There is a lot of duplicated constants between the actual firmware files and the test firmware files right now. I would really like to see these factored out into a common file that gets #included into these files instead. For example, CAN_BAUD, SERIAL_BAUD, and CAN_INIT_RETRY_DELAY get #defined everywhere to the same values. My experience is that you will probably never have any reason for these to be different between different boards (especially the serial and can bauds), anyway. And right now, as soon as you change something in the firmware, the tests could break, which is a headache.

I would like to see a common.h file that defines the above three constants, as well as a few others I'm not thinking of right now, and .h files for each type of board defining GPIO pin names, so we can rid ourselves of this duplication.

Also, I don't want to put multiple issues into the same github issue, but I realize now that the tests/ directory does not have the same directory structure as the rest of the code. i.e., there are no kia_soul_ps/ directories, even though the test there right now clearly (?) apply only to the kia soul.

Assembling the Control CAN Bus

How do you build the Control CAN Bus that will connect the gateway, OSCC modules and the control computer? As I understand, the bus needs to be terminated at both ends with 120 Ω. What connectors/cables/wires/terminators do we need?

Need a few more clarifications from the “Overview" Page Diagram

Thank you Dan for answering my first set of questions. Now that we know the diagram in the “Overview” page is the one to be followed, I’m hoping a few more things can be clarified.

  1. Where in the Fuse Box, should the wires going to the 200 amp relay and the Emergency Stop be connected?

  2. There are two wire branches coming out of the + terminal in the battery: one is 4 awg and the other 12 awg. Is the diagram implying that we connect two separate lug terminals of different gauges to the battery terminal?

  3. The 200 A fuse, 200 A relay and the System Switch are closer to the + terminal of the battery, than the Fuse Box. Does that mean we need to cut and splice any stock power wires from the Kia Or how do we connect those 3 elements between the battery terminal and the Fuse Box?

  4. For any component that connects to ground. Is it better to find a local ground point and try to make a connection there, or to wire it back to the – terminal of the battery? Take as examples the 200 amp and 40 amp relays, as well as the two pins in the Brake Actuator.

Create style guide.

I noticed a couple of commits that fix style in the repo, for example changing:

#define CAN_BAUD (CAN_500KBPS) -> #define CAN_BAUD ( CAN_500KBPS )

and

if (foo) {

}
->
if (foo)
{

}

It would be super handy for contributors like me to know what the polysync style is so I can follow it from the get-go. Please add it to CONTRIBUTING.md or something like that.

Vehicle vibration causes screw terminals to loosen

In our testing we have noticed that screw terminals on the OSCC boards can loosen due to vibration. We are working on a long term solution to address these issues in our newer model boards. For all existing boards we highly recommend applying blue loctite to all screw terminals, and checking that terminals are properly tightened. Loose connections can cause power steering or throttle to fail, or the added Prius brake actuator to not function as expected.

Questions related to wiring and installing the platform

I figured it would be easier for people to look at the questions if they were posted as separate issues.

Hi everyone,
I don’t mean to be annoying with so many questions, but honestly I’ve spent quite a bit of time going through the Wiki pages, and there are a lot of things I am confused about related to wiring and installing the platform. I don’t have much of a background assembling wire harnesses or working under the car hood, so more detailed instructions would be greatly appreciated. I bet more people trying to use this platform feel the same way.
So here are the questions.

  1. How much current (approximately) should be allocated for the entire system (including sensors/future modules)?

  2. As far as power distribution, there seem to be some inconsistencies between the schematic in the Overview page and the one in the Power Distribution page.
    Specifically:
    -In the “Overview” page, power to the entire system is controlled by both the System Switch and the Emergency stop, whereas in the “Power Distribution” page the CAN gateway and the sensors are independent from the Emergency Stop.
    -In the “Overview” page there is a relay and the Fuse Box separating the System Switch from the Emergency stop, whereas in the “Power Distribution” page the two are connected directly.
    -In the “Overview” page, there are separate fuses to control how much current can flow to the Brake Module and the other modules, whereas in the “Power Distribution” page all 3 modules receive power from wires branching out of a single relay.
    -In the “Overview” page wires of 20 awg gauge are indicated for the +12V and ground connections to the modules, whereas in the “Power Distribution” page 22 awg is indicated.
    I can’t think of other inconsistencies at this point, but if you examine the two schematics closely, I’m sure you can find more.
    Can you please clarify which schematic should be followed?

  3. From the schematic in the Overview Page

3a. Are the 200 A fuse and relay closest to the battery already in the car? If not, can you include a link to good parts we can buy online?

3b. How are we supposed to install and connect the System switch, the 200 amp relay and fuse (assuming the latter two are not already in the car) between the battery + terminal and the Fuse Box?

3c. Are all the fuses and relays in the schematic supposed to go inside the engine compartment? If so, how do we mount them and what tools/parts do we need?

3d. I see the word ‘glovebox’ in parenthesis for the Deutsch connectors. Are the connectors already there? Or is it just a suggestion to put them there along with the modules?

  1. From the schematic in the Power Distribution Page

4a. What are the amp rating requirements for the fuses and relays?

4b. How do we mount the fuses and relays? I know the page says something about using Seaboard. But can you be more specific about the tools/parts/procedure?

  1. Where are the steering, throttle and gateway modules supposed to go? Inside the glovebox? And how do we run wires from the engine compartment to wherever the modules are supposed to go? Please be specific.

  2. How do you do a proper splice between a wire of a larger gauge, into two or more of a smaller gauge (tools/parts and procedures) ?

  3. How do you access the Break Pedal Switch and the junction and run wires to the OSCC brake module?

  4. Installing the steering and throttle modules requires cutting a pair of wires for each:
    2 wires that connect the torque sensor and EPAS ECU for the steering, and 2 wires that connect the Accelerator Position Sensor and the Throttle Body for the throttle. But what if somebody wants to remove the modules from the car? Would it make sense to terminate the cut wires coming out each sensor and unit with matching plug/receptacle of a Deutsch connector. Or how would you restore the car to its original configuration?

  5. How do you build the Control CAN Bus that will connect the gateway, OSCC modules and the control computer? As I understand, the bus needs to be terminated at both ends with 120 Ω. What connectors/cables/wires/terminators do we need?

  6. What about the possibility of installing all the hardware in the back of the car . Would that be feasible? How should we do the wiring?

Using the car without the modules after cutting wires from the torque and accelerator sensors.

Installing the steering and throttle modules requires cutting a pair of wires for each:
2 wires that connect the torque sensor and EPAS ECU for the steering, and 2 wires that connect the Accelerator Position Sensor and the Throttle Body for the throttle. But what if somebody wants to remove the modules from the car? Would it make sense to terminate the cut wires coming out each sensor and unit with matching plug/receptacle of a Deutsch connector. Or how would you restore the car to its original configuration?

Estop STL file

I tried printing the estop stl file on a makerbot mini and it isn't able to print.

Has anyone tried printing this file?

The correct schematic for the power distribution

As far as power distribution, there seem to be some inconsistencies between the schematic in the Overview page and the one in the Power Distribution page.
Specifically:
-In the “Overview” page, power to the entire system is controlled by both the System Switch and the Emergency stop, whereas in the “Power Distribution” page the CAN gateway and the sensors are independent from the Emergency Stop.
-In the “Overview” page there is a relay and the Fuse Box separating the System Switch from the Emergency stop, whereas in the “Power Distribution” page the two are connected together.

  • In the “Overview” page, there are separate fuses to control how much current can flow to the Brake Module and the other modules, whereas in the “Power Distribution” page all 3 modules receive power from wires branching out of a single relay.
  • In the “Overview” page wires of 20 awg gauge are indicated for the +12V and ground connections to the modules, whereas in the “Power Distribution” page 22 awg is indicated.
    I can’t think of other inconsistencies at this point, but if you examine the two schematics closely, I’m sure you can find more.
    Can you please clarify which schematic should be followed?

Include Diagnostic background info in repository

The Diagnostics for the steering, brake and throttle control have both an explanation and empirical data that are incredibly useful to people using this code. This issue is specifically around taking that data, converting it to markdown and placing it in the repository.

This should be done for all of the diagnostics that are implemented.

Appropriate cable and wires for the Control CAN bus

What type of cable and wires do we need ? I'm specifically wondering about wire gauge, cable shield vs unshielded wires, characteristic impedance ( the ISO 11898-2 specifies 120 ohms).
Also does the reference ground also need to be carried in the same cable?
Any recommendations? Links to online parts are always appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.